HMACSHA256输出字节/位

时间:2012-02-16 12:41:48

标签: java algorithm hmac hmacsha1

我的朋友告诉我使用“HMACSHA256”算法,我使用了以下代码:

SecretKey signingKey = new SecretKeySpec("123".getBytes(), "HMACSHA256");  
    Mac mac = Mac.getInstance("HMACSHA256");  
    mac.init(signingKey);  
    byte[] digest = mac.doFinal("ABCDEF".getBytes());     
    System.out.println("HMA : "+digest.length);

只是想知道:

1)以上实现看起来标准的“HMACSHA256”?

2)输出(摘要)为256位或16字节。这是正确的。

如果我们使用HMACSHA256算法,那么我们需要多少字节作为输出。

1 个答案:

答案 0 :(得分:7)

HMAC摘要的输出位数等于基础算法生成的位数。

  • 对于MD5,此位数为128.
  • 对于SHA-1,此位数为160。
  • 对于SHA-256,这个位数为256。

您的代码看起来很好并且正在生成正确的摘要大小。您可以阅读有关加密哈希here的更多信息。