我的朋友告诉我使用“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算法,那么我们需要多少字节作为输出。
答案 0 :(得分:7)
HMAC摘要的输出位数等于基础算法生成的位数。
您的代码看起来很好并且正在生成正确的摘要大小。您可以阅读有关加密哈希here的更多信息。