salt encrypt
閱讀本文約花費: 2 (分鐘)
密码加密。现在 很少系统会直接保存用户的密码 ,至少也是会计算密码的 md5 后保存。md5 这种不可逆的加密方法理论上已经很安全了,但是随着彩虹表的出现,使得大量长度不够的密码可以直接从彩虹表里反推出来。 所以,只对密码进行 md5 加密是肯定不够的。聪明的程序员想出了个办法,即使用户的密码很短,只要我在他的短密码后面加上一段很长的字符,再计算 md5 ,那反推出原始密码就变得非常困难了。加上的这段长字符,我们称为盐(Salt),通过这种方式加密的结果,我们称为加盐 Hash
。比如: md5(md5(password)+salt)
常用的加密算法:
- 对称加密:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK、AES。
- 非对称加密:RSA、ECC(椭圆曲线加密算法)、Diffie-Hellman、El Gamal、DSA(数字签名用)
- Hash 算法:MD2、MD4、MD5、HAVAL、SHA-1、SHA256、SHA512、RipeMD、WHIRLPOOL、SHA3、HMAC
- DES:1976年由美国联邦政府的国家标准局颁布,密钥为 56 位。
- 3DES:DES加密算法的一种模式,它使用3条56位的密钥对数据进行三次加密。
- AES:高级加密标准,是下一代的加密算法标准,速度快,安全级别高,用来替代原先的DES。密钥长度可以是128,192或256比特。
参考文章
- Salted Password Hashing – Doing it Right
- ECDH 算法概述
- Rainbow table
- 《改变未来的九大算法》第四章:公钥加密