From 3753c46104303d8c5e36b3068650b1e0d136f447 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Fri, 07 Jun 2024 17:29:39 +0800
Subject: [PATCH] SM3加密

---
 src/main/java/com/dji/sample/territory/service/impl/TbFjServiceImpl.java |    5 ++---
 src/main/java/com/dji/sample/territory/utils/HashUtil.java               |   26 ++++++++++++++------------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/dji/sample/territory/service/impl/TbFjServiceImpl.java b/src/main/java/com/dji/sample/territory/service/impl/TbFjServiceImpl.java
index afc83aa..b8c2ccd 100644
--- a/src/main/java/com/dji/sample/territory/service/impl/TbFjServiceImpl.java
+++ b/src/main/java/com/dji/sample/territory/service/impl/TbFjServiceImpl.java
@@ -145,9 +145,8 @@
             file1 = VideoZipUtil.compressVideo(file, 800000, 128000, 1280, 720);
             FJ = fileToByteArray(file1);
         }
-        String sm3 = Sm3Util.calculateSM3Hash(fjhxz + "," + pssj + "," + lng + "," + lat + "," + gimbalYawDegree + "," + psjd + "," + pshgj + "," + psry + "," + zsdm);
-
-        byte[] hash = sm3.getBytes(); // 注意:使用SM3或其他哈希算法来计算数据的哈希值
+        String hxz = HashUtil.calculateHash((fjhxz + "," + pssj + "," + lng + "," + lat + "," + gimbalYawDegree + "," + psjd + "," + pshgj + "," + psry + "," + zsdm).getBytes());
+        byte[] hash = hxz.getBytes(); // 注意:使用SM3或其他哈希算法来计算数据的哈希值
         // 加载私钥
         ECPrivateKeyParameters sm2PrivateKey = getSM2PrivateKey();
         // 使用SM2私钥对哈希值进行签名
diff --git a/src/main/java/com/dji/sample/territory/utils/HashUtil.java b/src/main/java/com/dji/sample/territory/utils/HashUtil.java
index d0d1f0f..153a5bc 100644
--- a/src/main/java/com/dji/sample/territory/utils/HashUtil.java
+++ b/src/main/java/com/dji/sample/territory/utils/HashUtil.java
@@ -10,18 +10,15 @@
 public class HashUtil {
     public static String SM3Hash(File file) {
         String filePath = String.valueOf(file);
-        String hashHex = "";
         try {
             byte[] fileBytes = readFile(filePath);
-            byte[] hash = calculateHash(fileBytes);
-             hashHex = Hex.toHexString(hash);
+            return calculateHash(fileBytes);
         } catch (IOException e) {
             e.printStackTrace();
         }
-        return hashHex;
+        return "";
     }
-
-    private static byte[] readFile(String filePath) throws IOException {
+    public static byte[] readFile(String filePath) throws IOException {
         FileInputStream fis = new FileInputStream(filePath);
         byte[] buffer = new byte[1024];
         int bytesRead;
@@ -32,12 +29,17 @@
         fis.close();
         return sb.toString().getBytes();
     }
+    public static String calculateHash(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();
+    }
 
-    private static byte[] calculateHash(byte[] input) {
-        SM3Digest digest = new SM3Digest();
-        digest.update(input, 0, input.length);
-        byte[] hash = new byte[digest.getDigestSize()];
-        digest.doFinal(hash, 0);
-        return hash;
+    public static void main(String[] args) {
+        File file = new File("D:\\drone\\src\\main\\resources\\FJ_1s.jpeg");
+        System.out.println(SM3Hash(file));
     }
 }

--
Gitblit v1.9.3