常用加密算法

  • 1 常用加密算法

常用加密算法有 对称加密算法非对称加密算法Hash算法

对称加密算法

加密和解密使用相同的秘钥,加密速度快,但秘钥管理复杂
常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

非对称加密算法

加密和解密使用不同的秘钥,加密速度教对称加密慢,但便于管理,且由于私钥的唯一性可用作签名
常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

Hash算法

常用的有MD5和SHA,这俩种算法的特点是不可逆无冲突

  • 不可逆表示知道x的hash值b,无法求出x
  • 无冲突指x的hash值b,无法求出hash值为b的另一个y
    这两条特点在数学上是不成立的,但是MD5和SHA算法可以保证求逆和求冲突在计算上(即使耗尽人类所有计算资源)不可能

常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

  • 2 加密算法的选择

  • 由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
  • 对称加密算法不能实现签名,因此签名只能非对称算法。
  • 由于对称加密算法的密钥管理是一个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
  • 在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理密钥的优点。
    那采用多少位的密钥呢? RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可

参考:
http://code.huawei.com/h00403666/learning/blob/master/psm/doc/psm_encry.md
https://www.zhihu.com/question/20820286

你可能感兴趣的:(常用加密算法)