我目前使用SHA256与盐散列我的密码。 它是更好地继续使用SHA256或者我应该改变SHA512?
Answer 1:
切换到SHA512将很难让你的网站更安全。 你不应该写自己的密码散列函数。 相反,使用现有的实现。
SHA256和SHA512的消息摘要 ,他们从来就不是密码散列(或密钥推导)功能。 (虽然消息摘要可以使用的构建块一KDF,诸如与HMAC-SHA1 PBKDF2)。
密码散列函数应该抵御字典攻击和彩虹表。 为了抵御字典攻击,密码散列方案必须包括工作因素作出可行的是它慢。
目前,最好的选择可能是Argon2。 密码散列函数这家在2015年获得了密码哈希处理比赛。
如果Argon2不可用,唯一的标准化的密码散列或密钥推导功能PBKDF2,这是一个老气NIST标准。 其他的选择,如果使用的是标准不要求,包括bcrypt和scrypt。
维基百科有这些功能的页面:
- https://en.wikipedia.org/wiki/Argon2
- https://en.wikipedia.org/wiki/Bcrypt
- https://en.wikipedia.org/wiki/Scrypt
- https://en.wikipedia.org/wiki/PBKDF2
Answer 2:
这已经回答得相当好,如果你问我: https://stackoverflow.com/questions/3897434/password-security-sha1-sha256-or-sha512
杰夫对哈希有趣的讯息,也: http://www.codinghorror.com/blog/2012/04/speed-hashing.html
请注意,SHA512是慢了很多计算比SHA256。 在安全散列的背景下, 这是一种资产。 较慢的计算哈希意味着它需要更多的计算时间来破解,所以如果你能负担得起的成本计算SHA512会为此更加安全。
Answer 3:
在大多数64位处理器作为SHA256ses 32位数学,即常常略慢的动作计算出的时SHA512可以是显著更快。
文章来源: Best practice for hashing passwords - SHA256 or SHA512?