package com.ydtech.utils;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.util.Base64;
public class HMAC256Uitil {
//hmac256
public static String hmac256(String data, String key) {
StringBuilder sb = new StringBuilder();
byte[] bytes = null;
String encode = null;
try {
Mac hmacSHA256 = Mac.getInstance("HMACSHA256");
try {
SecretKeySpec hmacSHA2561 = new SecretKeySpec(key.getBytes("utf-8"), "HMACSHA256");
try {
hmacSHA256.init(hmacSHA2561);
bytes = hmacSHA256.doFinal(data.getBytes("utf-8"));
} catch (InvalidKeyException e) {
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// BASE64Encoder base64Encoder = new BASE64Encoder();
// byte[] bytes = data.getBytes("utf-8");
encode = Base64.getEncoder().encodeToString(bytes);
// encode = base64Encoder.encode(bytes);
System.out.println("加密后--" + encode);
} catch (Exception e) {
e.printStackTrace();
}
return encode;
}
public static void main(String[] args) {
hmac256("140400长治市LVVDA11B7AD256799晋DW0716NAAG029172010-08-23奇瑞SQR7150A130轿车", "123456test");
String xmlString = "1d6ff938-ada5-4f39-9fc1-e102120123456testC12022-07-12 18:00:00140400长治市LVVDA11B7AD256799晋DW0716NAAG029172010-08-23奇瑞SQR7150A130轿车";
xmlString = xmlString.substring(xmlString.lastIndexOf("") + 13, xmlString.lastIndexOf(""));
String consumerAccessKey = hmac256(xmlString, "123456test");
System.out.println("consumerAccessKey--" + consumerAccessKey);
}
}