目录
一、单向加密
- 特点:又称“哈希算法”,或“摘要算法”,做信息摘要,加密结果长度固定,且无法解密。同一个文件加密结果相同,不同文件可能出现相同的加密结果,但是概率很小,这种出现相同结果的现象称之为:碰撞。
- 用途:单向加密主要用于校验所传递信息的一致性和完整性。如文件是否需要重新上传、是否上传完整、数据是否被修改。
1.MD5
-
MD5即Message-Digest Algorithm 5(信息-摘要算法 5),MD5的前身有MD2、MD3和MD4。
-
随着硬件水平和算法的提升,MD5算法目前已经不再可靠。这里的破解并不是将摘要还原,而是制造碰撞,即制造能产生相同摘要值的信息。具体方法有暴力穷举、字典法等等。
-
MD5是输入不定长度信息,输出固定长度128-bits的算法。
2.SHA
- SHA算法包括SHA-1、SHA-2、SHA-3三代,其中SHA-2包含SHA-224、SHA-256、SHA-384、SHA-512,后面的数字即为加密后的bit位数,越长出现碰撞的概率越低。同理,SHA-3也包括SHA-64、SHA-224、SHA-256、SHA-384、SHA-512。如SHA-64加密的结果长度为16个字符,每个4位,所以为64bit。
二、双向加密
- 特点:加密结果可以通过解密得到原始串。
A.对称加密
- 特点:加密解密用同一个秘钥。
1.DES
- DES是一个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密用的是同一个算法。
2.AES
- AES支持三种长度的密钥:128位,192位,256位,平时所说的AES128,AES192,AES256,实际上区别就是AES算法中,不同长度的密钥。
- AES在拆分明文块时支持多种填充方式,如:NoPadding、PKCS5Padding(默认)、ISO10126Padding等,加密、解密需要采用相同的填充方式。
- AES的工作模式,体现在把明文块加密成密文块的处理过程中。AES加密算法提供了五种不同的工作模式,如:CBC、ECB、CTR、CFB、OFB。加密、解密需要采用相同的工作模式。
B.非对称加密
- 特点:加密解密用不同的秘钥,通常分为公钥和私钥。
1.RSA
- 秘钥可以是文件,也可以是字符串的形式。
三、其他
1.Base64
- Base64只算是一种编码格式,用于让加密结果易于传输,完全没有安全性,加密的逆过程即为解密。