答案 0 :(得分:1)
标准做法是在加密前salt密码。
在密码学中,盐由随机位组成,创建其中一个 输入到单向函数。另一个输入通常是密码或 密码。可以存储单向函数的输出 而不是密码,仍然用于验证用户。该 单向函数通常使用加密散列函数。盐 也可以通过密钥导出函数与密码组合 作为PBKDF2生成用于密码或其他密钥的密钥 加密算法。在密码的典型用法中 身份验证,salt与输出一起存储 单向函数,有时与迭代次数一起 用于生成输出(用于键拉伸)。早期的Unix系统 使用12位盐,但现代实现使用更大的长度 48到128位。盐与nonce的概念密切相关。该 使用salted密码提供的好处是制作查找表 协助字典攻击存储的值不切实际, 只要盐足够大。也就是说,攻击者不会 能够创建一个预先计算的查找表(即彩虹表) 散列值(密码+盐),因为它会占用太多空间。 一个简单的字典攻击仍然很有可能,尽管很多 由于无法预先计算,因此速度较慢。
答案 1 :(得分:1)
你真的不想加密密码,而是加密密码,你只是“匹配”。
存储密码非常不安全,加密可能会被破坏,单向哈希不能*
参考SO:
**但是,我知道*
答案 2 :(得分:0)
我通常使用sha1()来加密我的密码