如何验证HMAC java

时间:2014-11-01 14:45:33

标签: java hmacsha1

我已经获得以下代码来使用密码计算Hmacs:

public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException 
{
  String password = "password123";
  SecretKeySpec keySpec = new SecretKeySpec(password.getBytes(), "HmacSHA1");

  Mac mac = Mac.getInstance("HmacSHA1");
  mac.init(keySpec);

  byte[] result = mac.doFinal("This is a test string".getBytes());

  System.out.println(new Base64().encodeAsString(result));
}

但我无法弄清楚如何使用密码验证它,我正在阅读Java文档here,但我似乎无法找到验证功能或其他任何内容,关于HMAC的部分很短。

如何使用密码验证HMAC?

1 个答案:

答案 0 :(得分:0)

只需添加“Markus W Mahlberg”中提到的答案,以便更好地查看。 您只需再次进行散列并检查结果是否匹配。如果其中一个字符串有最微小的差异,则哈希值将不匹配。如果它们匹配,则您知道输入字符串和两个密码都匹配,因为哈希匹配

https://en.wikipedia.org/wiki/Message_authentication_code https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/MAC.svg/661px-MAC.svg.png