HmacSHA512(消息,秘密)与SHA512(消息+胡椒)

时间:2018-06-04 18:09:54

标签: hash cryptography hmac sha secret-key

我有一个场景,我需要散列消息来执行查找,其中明文消息未存储在数据库中。相反,生成的哈希存储在数据库中。请注意,该消息不是密码。

我的选择是:

HmacSHA512(message, secret)

VS

SHA512(message + pepper) where pepper = secret

我的想法是Hmac的消息身份验证代码属性在这里确实不适用,因为哈希是在计算并立即用于对数据库的查询中使用的。这就是为什么我对使用HmacSHA512而不是SHA512犹豫不决。但是,Hmac专门针对存在应用程序机密的情况而设计,而不是存储在数据库中,这正是我正在寻找的。

我所知道的一个小差异如下。假设,

HmacSHA512("AA1", "2") != HmacSHA512("AA", "12");
SHA512("AA1" + "2") == SHA512("AA" + "12");

这很明显,因为它只是SHA512中的字符串连接,但是,它是一个很小的区别。对此的任何其他见解将是有帮助的。提前谢谢!

0 个答案:

没有答案