zoukankan      html  css  js  c++  java
  • 浅析DES、AES、RSA、MD5加密算法及其应用场景

    对称加密算法
    DES 算法:一种典型的块加密方法,将固定长度的明文通过一系列复杂的操作变成同样长度的密文,块的长度为64位。同时,DES 使用的密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 DES 的密钥表面上是64位的,实际有效密钥长度为56位,其余8位可以用于奇偶校验。

    DES 现在已经不被视为一种安全的加密算法,主要原因是它使用的56位密钥过短。为了提供实用所需的安全性,可以使用 DES 的派生算法 3DES 来进行加密

    AES 算法:在密码学中又称 Rijndael 加密法,用来替代原先的 DES,已经被多方分析且广泛使用。

    非对称加密算法
    RSA算法:1977年由 MIT 的 Ron Rivest、Adi Shamir 和 Leonard Adleman 一起提出,以他们三人姓氏开头字母命名,是一种获得广泛使用的非对称加密算法。对极大整数做因数分解的难度决定了 RSA 算法的可靠性。换言之,对一个极大整数做因数分解愈困难,RSA 算法就愈可靠。假如有人找到一种快速因数分解的算法的话,那么用 RSA 加密的信息的可靠性就肯定会极度下降。目前看来找到这样的算法的可能性非常小。

    散列算法
    在信息安全领域,将源数据经过散列算法计算出数据指纹,用于识别经过传播途径得到的数据是否有误 ,以保证数据的来源真实性。

    MD5算法:MD5 即 Message‐Digest Algorithm 5 ,是计算机广泛使用的散列算法之一,经常用于确保信息传输的完整性和一致性 。MD5 输入不定长度信息,经过程序流程,生成四个32位数据,最后联合起来输出固定128bit长度的信息摘要。计算的基本过程为:求余、取余、调整长度、与链接变量进行循环运算、得出结果。MD5 的前身有 MD2、MD3 和 MD4。

    应用场景
    DES/AES加密速度快,适合大量数据,处理数据后可复原。

    RSA用于保密性时,就是公钥加密,私钥解密。 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密。这样就保证了信息的保密性,因为只有私钥持有者才能正确解密。

    RSA用于认证性时,比如数字签名,即私钥持有者对信息进行签名,验证者可以根据公开的公钥进行验证签名是否正确和有效,即实现了认证性,以及不可抵赖性。

    MD5用于完整性,确保信息在传输过程保持一致性;用于密码加密,数据库中不存储密码明文,而是存储其散列值,校验时比较散列值是否相同

    组合使用
    采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,使用散列函数进行数据摘要。

  • 相关阅读:
    js 常用方法
    Request.UrlReferrer
    批处理定时打开一个网页
    js基础知识总结:函数
    .NET DataTable转换为JSON格式的字符串
    .NET解析xml字符串,通过反射给实体类对象赋值,获取实体类数据列表
    .NET错误提示之:无法更新EntitySet“TableName”因为它有一个DefiningQuery
    python中安装web.py
    pycharm中运行flask项目安装flask
    jmeter--查看结果数中响应数据部分乱码
  • 原文地址:https://www.cnblogs.com/ygunoil/p/12094168.html
Copyright © 2011-2022 走看看