【问题标题】:Are HMACSHA256 hashes transferable from one server to another?HMACSHA256 哈希值是否可以从一台服务器传输到另一台服务器?
【发布时间】:2011-08-23 17:33:00
【问题描述】:

如果我在密码编码方案中使用HMACSHA256.ComputeHash 并在一台服务器上生成密码哈希,然后需要迁移到另一台服务器,我的哈希编码是否仍然相同?我记得看到一些关于machineKey 设置涉及加密操作,但我并不完全熟悉。

【问题讨论】:

  • 为什么不使用正确的密码导出函数,如 bcrypt、scrypt 或 PBKDF2?

标签: .net sha256 hmac password-encryption


【解决方案1】:

它们是否仍将编码相同取决于您如何创建 HMACSHA256 对象。它将使用您实例化它的任何密钥来执行哈希,或者,如果您未指定密钥,它将生成一个随机密钥。只要你传递相同的密钥,它就会生成相同的哈希值。

【讨论】:

    【解决方案2】:

    HMAC 根据密钥和您要验证的数据计算哈希值。为了让两台服务器计算相同的 HMAC,它们必须共享秘密,这可能使其不再是秘密。为了能够验证旧密码,密码需要被修复或以某种方式在存储的密码中被引用(如果它可以更改),使其实际上成为一种盐。

    在密码存储设置中使用 HMAC 很奇怪,它不是一个正确的密码派生函数(太快,内存不够密集),而且如果有的话,秘密不会带来太多价值,看到它必须修复(不像正确的 HMAC 用法,其中秘密由通信方在会话中达成一致并在之后忘记)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多