1.加密算法分类:
按照是否需要key加密解密分类:
不需要key的加密:Base64加密,MD5,SHA1,SHA256
需要key的加密:对称加密算法(AES,DES,3DES) 非对称加密算法(RSA)数字签名算法(RSA+MD5) HAMC
按照加密是否可逆分类:
单向加密算法(不可解密):MD5,SHA1,SHA256,HMAC
非单向加密算法(可解密):Base64,对称加密算法(AES,DES,3DES) 非对称加密算法(RSA),数字签名算法;
2.加密算法介绍:
Base64加密:准确的来说,更是一种编码方式,可以有效的防止明文传输,并且可以对二进制文件(图片等非文本文件)进行编码。
MD5 SHA1 SHA256
三种典型的单向加密算法,都不需要key。加密长度固定
MD5 128位(16字节)
SHA1 160位
SHA256 256位
安全性方面,显然SHA256(又称SHA2)的安全性最高,但是耗时要比其他两种多很多。MD5相对较容易碰撞,因此,SHA1应该是这三种中性能最好的一款加密算法。
通常我们不直接使用上述MD5加密。通常将MD5产生的字节数组交给Base64再加密一把,得到相应的字符串。
对称加密算法:
AES与DES的比较:
优点:“DES”:运算速度快,资源消耗较少;“AES”:运算速度快,安全性高,资源消耗少
缺点:“DES”:安全性低
非对称加密算法:
RSA 使用公钥与私钥的秘钥对进行加密和解密,安全性高,但是加密速度与解密速度特别慢;
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。
数字签名算法:
带有公钥私钥的消息摘要算法;
作用:
1. 验证数据的完整性 (消息摘要算法)
2. 认证数据来源 (公钥解密)
3. 抗否认 (检查一致性)
数字签名遵循:私钥签名,公钥认证;
常用的数字签名算法:RSA,DSA,ECDSA
/**
* 密钥对生成加解密算法 RSA 、 DSA 、 EC
* RSA 摘要算法: SHA1withRSA SHA224withRSA SHA256withRSA
* DSA 摘要算法: SHA1withDSA SHA224withDSA SHA256withDSA
* EC 摘要算法: SHA1withECDSA SHA224withECDSA SHA512withECDSA
*/