经常听到各种算法,工作中也经常使用MD5、SHA等常用算法,但对加密算法缺少系统的了解。现在进行一个系统的梳理,结合网上的资料及个人理解,常用加密算法可以分为三大类:
一、对称加密:公钥和私钥一致
常用加密算法:DES、AES
二、非对称加密:公钥和私钥不一致,一般用公钥加密,用私钥解密
常用加密算法:RSA
三、散列算法:加密后无法解密
1、常用加密算法:MD5、SHA1、SH256
2、一般用于防篡改或防止明文泄漏
3、防篡改:由发送方针对报文使用约定的key进行散列运算生成一个散列,接收方收到报文后也对报文内容按照约定的key进行散列运算,比对发送方和接收方散列是否一致,如果一致则表示没有被篡改过。
总结:
(1) 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高。
(2) 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢。
(3) 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通。