Просмотр исходного кода

ecu刷写文件签名,平板设备和客户端用户的bug

bmmx 1 год назад
Родитель
Сommit
f067513af4
1 измененных файлов с 9 добавлено и 58 удалено
  1. 9 58
      src/main/java/com/om/utils/FileSigner.java

+ 9 - 58
src/main/java/com/om/utils/FileSigner.java

@@ -11,14 +11,18 @@ import java.util.Base64;
 
 public class FileSigner {
 
-    private static final String PRIVATE_KEY_PATH = "sign/private_key.pem"; // 私钥文件路径
-    private static final String INPUT_FILE_PATH = "sign/FV200_G050_1JA30.s19"; // 待签名文件路径
-   // private static final String SIGNATURE_FILE_PATH = "sign/signature.bin"; // 签名文件输出路径
+    private static final String PRIVATE_KEY_PATH = "/usr/local/docker/opera/static/private_key.pem"; // 私钥文件路径
+
 
     public static MultipartFile sign(MultipartFile file) throws Exception {
         // 加载私钥
-        PrivateKey privateKey = loadPrivateKey(PRIVATE_KEY_PATH);
-
+        PrivateKey privateKey = null;
+        try {
+             privateKey = loadPrivateKey(PRIVATE_KEY_PATH);
+        }catch (Exception e){
+            System.out.println("-----------------------------------");
+            e.printStackTrace();
+        }
         // 读取待签名文件内容
         byte[] fileContent = file.getBytes();
 
@@ -42,59 +46,6 @@ public class FileSigner {
         return signedFile;
     }
 
-    public static void signTest(MultipartFile file) throws Exception {
-        // 加载私钥
-        PrivateKey privateKey = loadPrivateKey(PRIVATE_KEY_PATH);
-
-        // 读取待签名文件内容
-        byte[] fileContent = file.getBytes();
-
-        // 使用SHA256withRSA算法签名文件
-        Signature signer = Signature.getInstance("SHA256withRSA");
-        signer.initSign(privateKey);
-        signer.update(fileContent);
-        byte[] signature = signer.sign();
-
-        // 将签名信息保存签名到文件
-        // Files.write(Paths.get(SIGNATURE_FILE_PATH), signature);
-
-        // 刷写文件数据和签名信息拼接保存到文件
-        byte[] lengthBytes = intToByteArray(signature.length);//签名长度
-        System.out.println("签名字节长度int:"+signature.length);
-        System.out.println("签名字节长度:"+bytesToHexString(lengthBytes,lengthBytes.length));
-        byte[] concatenate = concatenate(lengthBytes, signature);//签名长度+签名
-        System.out.println("签名字节长度+签名字节:"+bytesToHexString(concatenate,concatenate.length));
-        Files.write(Paths.get(INPUT_FILE_PATH), concatenate(concatenate,fileContent));//签名长度+签名+刷写文件
-
-        System.out.println("File signed successfully!");
-    }
-
-    public static void main(String[] args) throws Exception {
-        // 加载私钥
-        PrivateKey privateKey = loadPrivateKey(PRIVATE_KEY_PATH);
-
-        // 读取待签名文件内容
-        byte[] fileContent = Files.readAllBytes(Paths.get(INPUT_FILE_PATH));
-
-        // 使用SHA256withRSA算法签名文件
-        Signature signer = Signature.getInstance("SHA256withRSA");
-        signer.initSign(privateKey);
-        signer.update(fileContent);
-        byte[] signature = signer.sign();
-
-        // 将签名信息保存签名到文件
-       // Files.write(Paths.get(SIGNATURE_FILE_PATH), signature);
-
-        // 刷写文件数据和签名信息拼接保存到文件
-        byte[] lengthBytes = intToByteArray(signature.length);//签名长度
-        System.out.println("签名字节长度int:"+signature.length);
-        System.out.println("签名字节长度:"+bytesToHexString(lengthBytes,lengthBytes.length));
-        byte[] concatenate = concatenate(lengthBytes, signature);//签名长度+签名
-        System.out.println("签名字节长度+签名字节:"+bytesToHexString(concatenate,concatenate.length));
-        Files.write(Paths.get(INPUT_FILE_PATH), concatenate(concatenate,fileContent));//签名长度+签名+刷写文件
-
-        System.out.println("File signed successfully!");
-    }
 
     private static PrivateKey loadPrivateKey(String keyPath) throws Exception {
         // 这里是简化代码,实际中你可能需要使用PEM解析器来加载私钥