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); } }