hotfix 兼容 fingerprint.data 文件是否存在两种逻辑。修改 tms cmep 完整性保护文件名字。

This commit is contained in:
cheney
2026-05-21 14:05:02 +08:00
parent 29cdba33a0
commit 2be4034b49
4 changed files with 29 additions and 22 deletions
@@ -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 {