我目前正在使用带有盐的 SHA256 来散列我的密码。是继续使用 SHA256 更好还是应该更改为 SHA512?

最佳答案

切换到 SHA512 几乎不会使您的网站更安全。 您不应该编写自己的密码散列函数。 而是使用现有的实现。
SHA256 和 SHA512 是 消息摘要 ,它们是 从来没有 意味着是密码-123 2314231818181818191919191919212314231423123142312312323423123232323232323232314231423231423423423143 (尽管消息摘要可以用作 KDF 的构建块,例如在带有 HMAC-SHA256 的 PBKDF2 中。)
密码散列函数应该防御字典攻击和彩虹表。为了防御字典攻击,密码散列方案 必须 包含一个工作因子,使其尽可能慢。
目前,最好的选择可能是 Argon2。该系列密码散列函数在 2015 年的密码散列比赛中获胜。
如果 Argon2 不可用,唯一的其他标准化密码散列或 key 派生函数是 PBKDF2,这是一个古老的 NIST 标准。如果不需要使用标准,其他选择包括 bcrypt 和 scrypt。
维基百科有这些功能的页面:

  • key-derivation
  • https://en.wikipedia.org/wiki/Argon2
  • https://en.wikipedia.org/wiki/Bcrypt
  • https://en.wikipedia.org/wiki/Scrypt

  • 编辑:NIST 不建议直接使用 https://en.wikipedia.org/wiki/PBKDF2(例如 SHA2 或 SHA3)来散列密码! message digests:

    关于hash - 散列密码的最佳实践 - SHA256 还是 SHA512?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11624372/

    10-17 00:14