常见加密算法分类
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。
对称加密
- 定义:指加密和解密使用相同密钥的加密算法。
- 常见算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
-
- 举例:假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。
非对称加密
- 定义:指加密和解密使用不同密钥的加密算法,也称为公私钥加密。
- 常见算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
- 举例:假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。
Hash加密
- 定义:Hash算法特别的地方在于它是一种
单向算法
,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。 - 常见算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
三类加密算法的比较
在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥
,然后用对称加密算法加密数据
,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
对称加密 | 非对称加密 | Hash加密 | |
---|---|---|---|
优点 | 算法公开;计算量小,加密速度快 | 安全性更好,不需要像对称加密那样在通信之前要先同步秘钥 | 一定程度上能检测并纠正数据传输中的信道误码 |
缺点 | 在数据传送前,发送方和接收方必须商定好秘钥,并且双方都必须保存好秘钥 | 加密和解密花费时间长、速度慢 | 不能防止对数据的恶意破坏 |
使用场景 | 需要加密大量的数据时,建议采用对称加密算法,提高加解密速度 | 当数据量很小时,我们可以考虑采用非对称加密算法 对称加密算法不能实现签名,因此签名只能非对称算法 | 常用在不可还原的密码存储、信息完整性校验等 |
参考文献
https://www.cnblogs.com/colife/p/5566789.html 常用加密算法概述
https://baike.baidu.com/item/对称加密/2152944?fr=aladdin#5 对称加密的优缺点
https://baike.baidu.com/item/非对称加密#3 非对称加密的优缺点