package com.utils.sign;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.SM3Digest;
import org.bouncycastle.crypto.macs.HMac;
import org.bouncycastle.crypto.params.KeyParameter;
import org.bouncycastle.util.encoders.Hex;
import java.nio.charset.StandardCharsets;
import java.util.AbstractQueue;
import java.util.Arrays;
public class TestSM3 {
public static String getSM3Hash(byte[] data){
SM3Digest sm3Digest = new SM3Digest();
sm3Digest.update(data,0,data.length);
System.out.println("sm3Size>"+sm3Digest.getDigestSize());
byte[] result = new byte[sm3Digest.getDigestSize()];
sm3Digest.doFinal(result,0);
return Hex.toHexString(result);
}
public static String getSM3Hmac(byte[] data,byte[] key){
HMac hMac = new HMac(new SM3Digest());
hMac.init(new KeyParameter(key));
hMac.update(data,0,data.length);
byte[] bytes = new byte[hMac.getMacSize()];
hMac.doFinal(bytes,0);
return Hex.toHexString(bytes);
}
public static void main(String[] args) {
String sign0 = "3d71731082429fc53d1ca4c55d73c8f1e88c5d223fd86dd8baf7d6cb376d1b1c";
String data = "卡送领导看我老公卢卡斯;类的看法;类的看法二;绿卡;类的封口费";
String result = TestSM3.getSM3Hash(data.getBytes());
System.out.println("result0>"+result);
String fff = "-73-28-30-1140-142-850499269-4610310090-52-79-48494-13105-89-2639126-2178-1205996";
System.out.println(fff.length());
String secretKey = "1234567890abcdef1234567890abcdef";
byte[] keyBytes = secretKey.getBytes(StandardCharsets.UTF_8);
System.out.println("keyBytes>"+Arrays.toString(keyBytes));
String ret = getSM3Hmac(data.getBytes(StandardCharsets.UTF_8),keyBytes);
System.out.println("ret>>>"+ret);
}
}