HMACSHA256哈希值是否可以从一台服务器转移到另一台服务器?

时间:2011-08-20 01:51:47

标签: .net sha256 hmac password-encryption

如果我在我的密码编码方案中使用HMACSHA256.ComputeHash并在一台服务器上生成密码哈希值,那么稍后需要迁移到另一台服务器,我的哈希值是否仍会编码相同?我记得在密码学操作中看到了machineKey设置的一些内容,但我并不完全熟悉。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

HMAC根据您要进行身份验证的机密和数据计算哈希值。为了让两个服务器计算相同的HMAC,他们必须共享秘密,这可能使它不那么秘密。为了能够验证旧密码,秘密将需要被修复,或者如果它可以改变则以某种方式引用存储的密码,使其实际上成为盐。

在密码存储设置中使用HMAC是非常奇怪的,它不是一个正确的密码派生功能(方式太快,不够内存密集)并且秘密不会带来太多价值(如果有的话),看它必须修复(不像适当的HMAC用法,其中秘密由交流方就会话达成一致,并在之后被遗忘。)