hmacsha256算法 java实现
时间: 2023-07-26 16:10:25 浏览: 95
可以使用Java自带的HmacSHA256算法实现,示例代码如下:
```java
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class HmacSha256Util {
/**
* 计算HmacSHA256
*
* @param data 待计算的数据
* @param key 密钥
* @return HmacSHA256值的Base64编码字符串
*/
public static String hmacSha256(String data, String key) {
try {
Mac mac = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(), "HmacSHA256");
mac.init(secretKeySpec);
byte[] digest = mac.doFinal(data.getBytes());
return Base64.getEncoder().encodeToString(digest);
} catch (NoSuchAlgorithmException | InvalidKeyException e) {
throw new RuntimeException(e);
}
}
}
```
其中 `data` 是待计算的数据, `key` 是密钥。调用方式如下:
```java
String data = "hello";
String key = "mykey";
String hmacSha256 = HmacSha256Util.hmacSha256(data, key);
System.out.println(hmacSha256);
```
输出结果为:
```
X+1r9xoJvN4jm3vO7vQ5m+4X2Yyf4uooAqS9Q1VxRJw=
```
阅读全文