我正在寻找在我当前的密码加密应用程序中使用的散列算法。我遇到了这个链接
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
Argon2 [* 7]是密码哈希竞赛的获胜者,应被视为新申请的首选; PBKDF2 [* 4]需要在许多平台上进行FIPS认证或企业支持; scrypt [* 5]需要抵制任何/所有硬件加速攻击,但支持不是。 bcrypt,其中PBKDF2或scrypt支持不可用。
我没有使用过任何这些早期的项目,我知道SHa-256。但我想知道哪一个是加密密码的最佳算法。 考虑计算,使用的内存,返回哈希值长度,是否需要使用salt值。
他们也建议使用Argon2,但它相对较新。我们可以用吗?是推荐吗?
对此有任何建议。
答案 0 :(得分:0)
仅使用哈希函数保存密码验证程序是不够的,只添加一个盐对提高安全性几乎没有作用。
而是使用随机盐在HMAC上迭代大约100毫秒的持续时间并使用哈希值保存盐。
更好地使用PBKDF2
,Rfc2898DeriveBytes
,Argon2
,password_hash
,Bcrypt
或类似功能等功能。
重点是让攻击者花大量时间通过暴力破解密码。
PBKDF2也被称为Rfc2898和Rfc2898DeriveBytes是当前NIST批准的方法,Argon2
是一个更好的解决方案,但并不广泛使用。