简介
加密算法分 对称加密 和 非对称加密,其中对称加密算法的加密与解密 使用同一个密钥,非对称加密算法的加密密钥与解密 使用两个密钥(公钥和私钥),此外,还有一类 不需要密钥 的 散列算法。
常见的 对称加密 算法主要有
DES
、3DES
、AES
等,常见的 非对称算法 主要有RSA
、DSA
等,散列算法 主要有SHA-1
、MD5
等。
对称加密
对称加密算法(Symmetric-key algorithm) 又称 共享密钥加密算法。使用同一个密钥用来加密和解密。
在网络通信中 客户端 和 服务器 端同时共享一个密钥。
优点
速度快,适合大数据量的加解密处理。
缺点
不安全,不适合互联网,如果在共享密钥的过程中密钥被拦截,则信息全部暴露。一般用户系统内部。
非对称加密
非对称加密算法(Asymmetric cryptography) 又称 公开密钥加密算法。使用两个密钥来加密和解密:公开密钥,即公钥。私有密钥,即私钥。
在网络通信中一般由 服务器 生成一对 公钥 和 私钥 。私钥留给服务器,公钥发给客户端。
一般来说:公钥加密,私钥解密,用来加密。私钥加密,公钥解密,用来签名(或者说认证,认证消息是否来自服务器)。在这个过程中,即使信息泄露,第三方没有对应的密钥也无法从中获取信息。
优点
安全性高。
缺点
速度慢,适合小数据量加解密或数据签名。
参考链接
https://juejin.im/post/5b48b0d7e51d4519962ea383#comment
https://segmentfault.com/a/1190000012196642