2014-11-01 55 views
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?

+0

究竟你的意思是驗證? – 2014-11-01 14:59:10

+0

@MarkusWMahlberg根據(散列+密碼)檢查原始字符串以驗證完整性 – Crizly 2014-11-01 15:02:46

+3

您只需再次執行散列並檢查結果是否匹配。如果其中任何一個字符串有絲毫差異,則散列不匹配。如果它們匹配,則知道兩個輸入字符串和兩個密碼匹配,因爲哈希匹配。 – 2014-11-01 15:08:16

回答