吉安感知网项目-后端
xiebin
2026-01-06 d207a86cdf1ab52ef8cb7cd83bad8fceab8038cf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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;
    }
}