package org.sxkj.common.utils.sm3;
|
|
import org.sxkj.common.utils.jym.SM2SignVO;
|
import org.sxkj.common.utils.jym.SM2SignVerUtils;
|
import org.sxkj.common.utils.jym.Util;
|
import org.bouncycastle.crypto.digests.SM3Digest;
|
import org.bouncycastle.util.encoders.Hex;
|
|
import java.nio.charset.StandardCharsets;
|
|
public class SM3 {
|
public static String sm3(byte[] data) {
|
byte[] md = new byte[32];
|
SM3Digest sm3 = new SM3Digest();
|
sm3.update(data, 0, data.length);
|
sm3.doFinal(md, 0);
|
String s = new String(Hex.encode(md));
|
return s.toUpperCase();
|
}
|
|
public static String sm3(String input) {
|
// 将输入的字符串转换为字节数组
|
byte[] data = input.getBytes();
|
|
// 创建一个字节数组,用于存储加密结果
|
byte[] md = new byte[32];
|
|
// 创建SM3加密对象
|
SM3Digest sm3 = new SM3Digest();
|
|
// 更新加密对象,传入数据
|
sm3.update(data, 0, data.length);
|
|
// 完成加密,并将结果存储到md数组
|
sm3.doFinal(md, 0);
|
|
// 将字节数组转换为十六进制字符串
|
String s = new String(Hex.encode(md));
|
|
// 返回大写的十六进制字符串
|
return s.toUpperCase();
|
}
|
|
|
|
|
|
|
public static String addJym(StringBuffer buffer) throws Exception {
|
String hash = SM3.sm3(buffer.toString());
|
String privateKey = "23E57DA1E4AB865CCBC325B668762207DEF74345B782237808AE0BABDF26734D";
|
SM2SignVO sm2signv0 = SM2SignVerUtils.Sign2SM2(Util.hexStringToBytes(privateKey), hash.getBytes(StandardCharsets.UTF_8));
|
return sm2signv0.getSm2_signForHard().toUpperCase();
|
}
|
|
public static StringBuffer addStringBuffer(String FJHXZ, String PSSJ, Double Longitude, Double Latitude, int PSFYJ, int PSJD, int PSHGJ, String PSRY, String ZSDM) {
|
StringBuffer buffer = new StringBuffer();
|
// 添加参数到 StringBuffer
|
buffer.append(FJHXZ).append(",");
|
buffer.append(PSSJ).append(",");
|
buffer.append(Longitude).append(",");
|
buffer.append(Latitude).append(",");
|
buffer.append(PSFYJ).append(",");
|
buffer.append(PSJD).append(",");
|
buffer.append(PSHGJ).append(",");
|
buffer.append(PSRY).append(",");
|
buffer.append(ZSDM);
|
return buffer;
|
}
|
}
|