From a0e7cf2d16dc23b1d6edf3b69678ab66ccacb54d Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 12 Jun 2024 15:51:14 +0800
Subject: [PATCH] 图斑生成航线,图片哈希值

---
 src/main/java/com/dji/sample/territory/utils/SM2SignUtil.java |   49 +++++++++++++++++++++++++++++--------------------
 1 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/src/main/java/com/dji/sample/territory/utils/SM2SignUtil.java b/src/main/java/com/dji/sample/territory/utils/SM2SignUtil.java
index 7b5980e..d4dd1c3 100644
--- a/src/main/java/com/dji/sample/territory/utils/SM2SignUtil.java
+++ b/src/main/java/com/dji/sample/territory/utils/SM2SignUtil.java
@@ -14,6 +14,7 @@
 import org.bouncycastle.math.ec.ECPoint;
 import org.bouncycastle.math.ec.FixedPointCombMultiplier;
 
+import java.io.File;
 import java.math.BigInteger;
 import java.security.KeyPair;
 import java.security.KeyPairGenerator;
@@ -109,32 +110,40 @@
         return hexString.toString().toUpperCase();
     }
 
-//    public static void main(String[] args) throws Exception {
-//        // 示例哈希值(这里只是一个占位符,你应该使用实际的哈希值)
-////        String sm3 = Sm3Util.calculateSM3Hash("FJHXZ,PSSJ,Longitude,Latitude,PSFYJ,PSJD,PSHGJ,PSRY,ZSDM");
-////        System.out.println("sm3 in hash: " + sm3);
+    public static void main(String[] args) throws Exception {
+        // 示例哈希值(这里只是一个占位符,你应该使用实际的哈希值)
+        String hxz = String.valueOf(SM3HashExample.str(("B69200D500E57054E987FFF855204B30CE6BD32FE54937C531D6F943633A97A6"
+                + "," + "2024-06-05 10:04:16" + "," + "115.8506321" + "," + "28.6193951" + "," + "-83" + "," + "135" +
+                "," + "0" + "," + "中图智绘无人机" + "," + "23C8CCC61E3042FBA6A658F319337B1A")));
+//        System.out.println("sm3 in hash: " + sm3);
 //        byte[] hash = sm3.getBytes(); // 注意:使用SM3或其他哈希算法来计算数据的哈希值
-//
-//        // 加载私钥
+        System.out.println(hxz);
+        byte[] hash = hxz.getBytes(); // 注意:使用SM3或其他哈希算法来计算数据的哈希值
+        // 加载私钥
+        ECPrivateKeyParameters sm2PrivateKey = getSM2PrivateKey();
+        // 使用SM2私钥对哈希值进行签名
+        String signatureHex = signWithSM2(hash, sm2PrivateKey);
+        System.out.println(signatureHex);
+        // 加载私钥
 //        ECPrivateKeyParameters sm2PrivateKey = getSM2PrivateKey();
 //
 //        // 使用SM2私钥对哈希值进行签名
 //        String signatureHex = signWithSM2(hash, sm2PrivateKey);
-////        System.out.println("Signature in hex (uppercase): " + signatureHex);
+//        System.out.println("Signature in hex (uppercase): " + signatureHex);
+
+//        //验证
+//        // 示例数据哈希(SM3哈希值)
+//        byte[] dataHash = hash; // 注意:这里仅作为示例,你需要用实际的SM3哈希值
 //
-////        //验证
-////        // 示例数据哈希(SM3哈希值)
-////        byte[] dataHash = hash; // 注意:这里仅作为示例,你需要用实际的SM3哈希值
-////
-////        // 示例签名(字节数组)
-////        byte[] signature = signatureHex.getBytes(); // 注意:这里仅作为示例,你需要用实际的签名值
-////
-////        // 验证签名
-////        boolean isValid = verify(dataHash, signature);
-////
-////        // 输出验证结果
-////        System.out.println("Signature is valid: " + isValid);
+//        // 示例签名(字节数组)
+//        byte[] signature = signatureHex.getBytes(); // 注意:这里仅作为示例,你需要用实际的签名值
 //
-//    }
+//        // 验证签名
+//        boolean isValid = verify(dataHash, signature);
+//
+//        // 输出验证结果
+//        System.out.println("Signature is valid: " + isValid);
+
+    }
 
 }

--
Gitblit v1.9.3