package com.uyou.common;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
public class SecurityUtils {
/// <summary>
/// HmacSHA256加密
/// </summary>
/// <param name="data">要加密的数据</param>
/// <param name="secretKey">密钥</param>
/// <returns></returns>
public static String HmacSHA256Encrypt(String data, String secretKey) {
try {
// 初始化一个密钥
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey.getBytes(), "HmacSHA256");
// 获取Mac实例
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(secretKeySpec);
// 执行HMACSHA256加密
byte[] encryptedBytes = mac.doFinal(data.getBytes());
// 将加密后的字节数据转换为Base64编码的字符串
String encryptedString = Base64.getEncoder().encodeToString(encryptedBytes);
encryptedString= ToHexString(encryptedBytes); //转为十六进制
System.out.println("Encrypted data (Base64): " + encryptedString);
return encryptedString.toUpperCase();
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
//转为十六进制
private static String ToHexString(byte[] bytes) {
String hexString = "";
if (bytes != null) {
StringBuilder strB = new StringBuilder();
for (byte b : bytes) {
strB.append(String.format("%02x", b));
}
hexString = String.valueOf(strB);
}
return hexString;
}
}
Java代码实现 HmacSHA256加密
最新推荐文章于 2025-09-11 09:00:00 发布
2279

被折叠的 条评论
为什么被折叠?



