大家好我有一个问题,如果这是好的做法或不。我知道,简单的双哈希值可能会因各种原因而变差。在已经散列的值上使用HMAC,是好还是坏的做法?
我想要做的就是像这样,在PHP中。
$val = hash_hmac('sha256', md5($password), $salt);
原因是我们正在通过封闭的API验证可信赖的合作伙伴。密码在我们的数据库中存储为MD5哈希。但是,我不希望我们的合作伙伴通过网络发送相同的价值。
通过这种方式,我可以将我们数据库中的md5'd密码与我们合作伙伴发送的唯一哈希进行比较。
你说什么?
感谢您的意见。这是代表用户。为了说明我们不是以纯文本的形式将密码存储在数据库中,它们被存储为未加密的MD5。不是为了免除自己,但是当我到达这里时就是这样。合作伙伴已经使用nonce,http摘要确切地向他们的API验证了他们的凭据。次级身份验证代表最终用户。 – HarryYee
那么,它仍然是一个共享的秘密,所以你应该使用一个随机数的hmac,就像我的例子一样......但是切换到oauth之类的东西,当你有机会时重新输入你的密码:) – bdonlan