1
我有下面的代码来计算Hmacs用密码:如何验证HMAC的Java
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?
究竟你的意思是验证? – 2014-11-01 14:59:10
@MarkusWMahlberg根据(散列+密码)检查原始字符串以验证完整性 – Crizly 2014-11-01 15:02:46
您只需再次执行散列并检查结果是否匹配。如果其中任何一个字符串有丝毫差异,则散列不匹配。如果它们匹配,则知道两个输入字符串和两个密码匹配,因为哈希匹配。 – 2014-11-01 15:08:16