hotfix 兼容 fingerprint.data 文件是否存在两种逻辑。修改 tms cmep 完整性保护文件名字。
This commit is contained in:
parent
29cdba33a0
commit
2be4034b49
@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>com.sunyard.cisd</groupId>
|
||||
<artifactId>device-fingerprint-tool</artifactId>
|
||||
<version>1.0.2</version>
|
||||
<version>1.0.3</version>
|
||||
<name>device-fingerprint-tool</name>
|
||||
<description>设备指纹信息获取工具</description>
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
2
pom.xml
2
pom.xml
@ -128,7 +128,7 @@
|
||||
<dependency>
|
||||
<groupId>com.sunyard.cisd</groupId>
|
||||
<artifactId>device-fingerprint-tool</artifactId>
|
||||
<version>1.0.2</version>
|
||||
<version>1.0.3</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user