加密算法优缺点及适用场景整理
对称加密算法(DES和AES)
DES 算法:一种典型的块加密方法,将固定长度的明文通过一系列复杂的操作变成同样长度的密文,块的长度为64位。同时,DES 使用的密钥来自定义变换过程,因此算法认为只有持有加密所用的密钥的用户才能解密密文。 DES 的密钥表面上是64位的,实际有效密钥长度为56位,其余8位可以用于奇偶校验。
DES 现在已经不被视为一种安全的加密算法,主要原因是它使用的56位密钥过短。为了提供实用所需的安全性,可以使用 DES 的派生算法 3DES 来进行加密(3-DES)
DES优缺点:
优点:
相对于AES来说,它的优点不突出
缺点:
1、分组比较短。
2、密钥太短。(实际上56位密钥)
3、密码生命周期短。
4、运算速度较慢。(因为每个分组仅含8个字符,而且其中某些位还要用于奇偶校验或其他通讯开销。处理速度慢、加密耗时)
AES优缺点:
AES 算法:在密码学中又称 Rijndael 加密法,用来替代原先的 DES,已经被多方分析且广泛使用。
优点:
1、运算速度快。
2、对内存的需求非常低,适合于受限环境。
3、分组长度和密钥长度设计灵活。
4、AES的密钥长度比DES大,它也可设定为32比特的任意倍数,最小值为128比特,最大值为256比特,所以用穷举法是不可能破解的。
5、很好的抵抗差分密码分析及线性密码分析的能力。
缺点:
暂时没找到,因为AES的出现目的就是要代替DES算法的。
散列算法(MD5)
MD5算法:经常用于确保信息传输的完整性和一致性 。MD5 输入不定长度信息,经过程序流程,生成四个32位数据,最后联合起来输出固定128bit长度的信息摘要。计算的基本过程为:求余、取余、调整长度、与链接变量进行循环运算、得出结果
MD5特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
5、强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。
应用场景
DES/AES加密速度快,适合大量数据,处理数据后可复原。
MD5用于完整性,确保信息在传输过程保持一致性;用于密码加密,数据库中不存储密码明文,而是存储其散列值,校验时比较散列值是否相同。
MD5在论坛上、软bai件发布时经常用,是为了保证文件du的正确性,防止一些zhi人盗用程序,dao加些木马或者篡改版权,设计的一套验证系统。每个文件都可以用MD5验证程序算出一个固定的MD5码来。