RsaUtils.java 2.18 KB
package com.idss.vulsync.utils;

import java.io.FileWriter;
import java.io.IOException;
import java.security.Key;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.util.Base64;

/**
 * @Author: zc
 * @Date: 2024/8/29 15:51
 */
public class RsaUtils {
    public static void main(String[] args) throws Exception {
        generateRSAPemKeyFiles();
    }

    /**
     * 生成RSA pem格式的公私钥文件
     *
     * @throws Exception
     */
    private static void generateRSAPemKeyFiles() throws Exception {
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
        keyPairGenerator.initialize(4096);
        KeyPair keyPair = keyPairGenerator.generateKeyPair();

        savePrivatePemFile(keyPair.getPrivate(), "E:\\工作\\资管探针\\idss\\打包\\测试141\\北京联通\\漏管对接\\资管侧接口程序密钥\\private_key.pem");
        savePublicPemFile(keyPair.getPublic(), "E:\\工作\\资管探针\\idss\\打包\\测试141\\北京联通\\漏管对接\\资管侧接口程序密钥\\public_key.pem");
    }

    private static void savePrivatePemFile(Key key, String filename)
            throws IOException {
        String encoded = Base64.getEncoder().encodeToString(key.getEncoded());

        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(filename);
            fileWriter.write("-----BEGIN PRIVATE KEY-----\n");
            fileWriter.write(encoded);
            fileWriter.write("\n-----END PRIVATE KEY-----");
        } finally {
            if (null != fileWriter) {
                fileWriter.close();
            }
        }
    }

    private static void savePublicPemFile(Key key, String filename)
            throws IOException {
        String encoded = Base64.getEncoder().encodeToString(key.getEncoded());

        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(filename);
            fileWriter.write("-----BEGIN PUBLIC KEY-----\n");
            fileWriter.write(encoded);
            fileWriter.write("\n-----END PUBLIC KEY-----");
        } finally {
            if (null != fileWriter) {
                fileWriter.close();
            }
        }
    }

}