gpt4 book ai didi

java - 什么是 keyed-HMAC(哈希消息验证码)

转载 作者:行者123 更新时间:2023-12-01 16:39:15 29 4
gpt4 key购买 nike

什么是 keyed-HMAC(哈希消息验证码)?如何使用java在Web服务中编写HMAC?

最佳答案

HMAC 是用于验证消息真实性的摘要。与 md5 签名不同,它是使用只有您和接收方知道的 key 生成的,因此第三方不可能伪造。

为了生成一个,您需要使用一些 java.security 类。试试这个:

public byte[] generateHMac(String secretKey, String data, String algorithm /* e.g. "HmacSHA256" */) {

SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes(), algorithm);

try {
Mac mac = Mac.getInstance(algorithm);
mac.init(signingKey);

return mac.doFinal(data.getBytes());
}
catch(InvalidKeyException e) {
throw new IllegalArgumentException("invalid secret key provided (key not printed for security reasons!)");
}
catch(NoSuchAlgorithmException e) {
throw new IllegalStateException("the system doesn't support algorithm " + algorithm, e);
}
}

关于java - 什么是 keyed-HMAC(哈希消息验证码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5815361/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com