使用java实现CryptoJS.HmacSHA256
时间: 2023-02-09 20:06:18 浏览: 313
JAVA实现的sha256加密算法
5星 · 资源好评率100%
可以使用Java的javax.crypto包来实现CryptoJS.HmacSHA256。
具体来说,可以使用Java Security API来实现哈希消息验证码(HMAC)算法,使用SHA-256算法来生成消息摘要。
以下是一个示例代码,它使用Java的javax.crypto包来计算给定数据的HMAC-SHA256消息摘要:
```
import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class HmacSHA256 {
private static final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
/**
* 生成 HMAC-SHA256 消息摘要
*
* @param data
* 待哈希数据
* @param key
* 密钥
* @return 消息摘要(长度为32的十六进制字符串)
*/
public static String calculateHMAC(String data, String key)
throws NoSuchAlgorithmException, InvalidKeyException {
// 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
SecretKeySpec signingKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), HMAC_SHA256_ALGORITHM);
// 生成一个指定 Mac 算法 的 Mac 对象
Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
// 用给定密钥初始化 Mac 对象
mac.init(signingKey);
// 完成 Mac 操作
byte[] rawHmac = mac.doFinal(data.getBytes(StandardCharsets.UTF_8));
// 十六进制编码
return Hex.encodeHexString(rawHmac);
}
}
```
使用方法:
```
String data = "test data";
String key = "test key
阅读全文