目录
不可逆加密算法
- 可以通过数据计算加密后的结果,但是通过结果无法计算出加密数据。常见的不可逆加密算法有
MD5
,HMAC
,SHA1
、SHA-224
、SHA-256
、SHA-384
,SHA-512。
MD5算法
加密原理:
在MD5算法中,首先需要对信息进行填充,使其位长度对512求余的结果等于448。因此,信息的位长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,再在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。
- 应用场景
Hash算法 常用于不可还原的密码存储,信息完整性校验。
文档,音视频文件,软件安装包等,用新老摘要对比是否一样(接收文件是否被修改)。
用户名或者密码加密后数据库存储。
对称加密算法
在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yao)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。
- 对称加密算法有:DES TripleDES算法、RC算法、BlowFish算法、3DES算法、IDEA算法
- 特点:
加密和解密使用相同的密钥。
- 优点:
生成密钥的算法公开、计算量小、加密速度快、加密效率高、密钥较短。
- 缺点:
双方共同的密钥,有一方密钥被窃取,影响双方。
如果每个客户都生成不同密钥,则密钥数量巨大。
- 应用场景
登录信息用户和密码加密,传输加密,指令加密。
非对称加密算法
主要算法:
RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。
非对称加密需要两个密钥:
公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。
公开密钥和私有密钥生成时是一对。
用公钥加密只能是对应的私钥解密,同理用私钥只能用对应公钥解密。
- 优点:
安全高(几乎很难破解)。
- 缺点:
加解密相对速度慢、算法强度复杂、密钥长、计算量大、效率低。