diff --git a/device-fingerprint-tool/pom.xml b/device-fingerprint-tool/pom.xml
index 8a5c03d..9ec253d 100644
--- a/device-fingerprint-tool/pom.xml
+++ b/device-fingerprint-tool/pom.xml
@@ -6,7 +6,7 @@
com.sunyard.cisd
device-fingerprint-tool
- 1.0.2
+ 1.0.3
device-fingerprint-tool
设备指纹信息获取工具
diff --git a/device-fingerprint-tool/src/main/java/com/sunyard/cisd/device/tool/Main.java b/device-fingerprint-tool/src/main/java/com/sunyard/cisd/device/tool/Main.java
index 651b26a..3d355cd 100644
--- a/device-fingerprint-tool/src/main/java/com/sunyard/cisd/device/tool/Main.java
+++ b/device-fingerprint-tool/src/main/java/com/sunyard/cisd/device/tool/Main.java
@@ -3,6 +3,9 @@ package com.sunyard.cisd.device.tool;
import java.io.File;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.security.PublicKey;
import java.util.Base64;
import java.util.Map;
@@ -41,7 +44,7 @@ public class Main {
public static final String[] CMEP_TARGETS = {
"/home/cmep4i/cmsp/CMEP-CMSP.jar",
- "/home/cmep4i/cmtp/CMEP-CMSP.jar"
+ "/home/cmep4i/cmtp/CMEP-CMTP.jar"
};
public static void main(String[] args) {
@@ -194,21 +197,24 @@ public class Main {
System.out.println("硬盘序列号: " + fingerprint.getHardDiskSerialNumber());
String plainText = buildPlainText(fingerprint);
- System.out.println("\n当前拼接原文: " + plainText);
-
- String savedPlainText = SM3Util.readFile(FINGERPRINT_DATA_FILE).trim();
- System.out.println("保存的拼接原文: " + savedPlainText);
-
+// System.out.println("\n当前拼接原文: " + plainText);
+
byte[] signature = SM3Util.readFileBytes(SIGN_FILE);
PublicKey publicKey = SM2Util.loadPublicKey(FINGERPRINT_PUBLIC_KEY_PATH);
- boolean dataMatch = plainText.equals(savedPlainText);
- boolean signatureVerified = SM2Util.verify(savedPlainText.getBytes(StandardCharsets.UTF_8), signature, publicKey);
+
+ boolean signatureVerified = SM2Util.verify(plainText.getBytes(StandardCharsets.UTF_8), signature, publicKey);
System.out.println("\n=== 验证结果 ===");
- System.out.println("设备信息匹配: " + dataMatch);
System.out.println("签名验证: " + signatureVerified);
- System.out.println("总体验证: " + (dataMatch && signatureVerified));
+ if( Files.exists( Paths.get(FINGERPRINT_DATA_FILE)) ) {
+ String savedPlainText = SM3Util.readFile(FINGERPRINT_DATA_FILE).trim();
+// System.out.println("保存的拼接原文: " + savedPlainText);
+ boolean dataMatch = plainText.equals(savedPlainText);
+ System.out.println("设备信息与保存的信息匹配: " + dataMatch);
+ }
+
+// System.out.println("总体验证: " + (dataMatch && signatureVerified));
}
private static void generateMAC() throws Exception {
diff --git a/pom.xml b/pom.xml
index 62f85ed..818d4a7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -128,7 +128,7 @@
com.sunyard.cisd
device-fingerprint-tool
- 1.0.2
+ 1.0.3
diff --git a/src/main/java/com/cisd/tms/modules/system/service/impl/SelfCheckServiceImpl.java b/src/main/java/com/cisd/tms/modules/system/service/impl/SelfCheckServiceImpl.java
index 17b86ab..8f74ac0 100644
--- a/src/main/java/com/cisd/tms/modules/system/service/impl/SelfCheckServiceImpl.java
+++ b/src/main/java/com/cisd/tms/modules/system/service/impl/SelfCheckServiceImpl.java
@@ -12,6 +12,8 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.List;
@@ -153,22 +155,21 @@ public class SelfCheckServiceImpl implements SelfCheckService {
log.info("硬盘序列号: " + fingerprint.getHardDiskSerialNumber());
String plainText = buildPlainText(fingerprint);
- log.info("\n当前拼接原文: " + plainText);
-
- String savedPlainText = SM3Util.readFile(FINGERPRINT_DATA_FILE).trim();
- log.info("保存的拼接原文: " + savedPlainText);
byte[] signature = SM3Util.readFileBytes(SIGN_FILE);
PublicKey publicKey = SM2Util.loadPublicKey(FINGERPRINT_PUBLIC_KEY_PATH);
-
- boolean dataMatch = plainText.equals(savedPlainText);
- boolean signatureVerified = SM2Util.verify(savedPlainText.getBytes(StandardCharsets.UTF_8), signature, publicKey);
+ boolean signatureVerified = SM2Util.verify(plainText.getBytes(StandardCharsets.UTF_8), signature, publicKey);
log.info("\n=== 验证结果 ===");
- log.info("设备信息匹配: " + dataMatch);
log.info("签名验证: " + signatureVerified);
- log.info("总体验证: " + (dataMatch && signatureVerified));
- return (dataMatch && signatureVerified);
+ if( Files.exists( Paths.get(FINGERPRINT_DATA_FILE)) ) {
+ String savedPlainText = SM3Util.readFile(FINGERPRINT_DATA_FILE).trim();
+// System.out.println("保存的拼接原文: " + savedPlainText);
+ boolean dataMatch = plainText.equals(savedPlainText);
+ log.info("设备信息与保存的信息匹配: " + dataMatch);
+ }
+
+ return signatureVerified;
} catch (Exception e) {
log.error("[ERROR] {} - {}", CHECK_DEVICE_FINGERPRINT, e.getMessage());
return false;