作者:じ☆ve宝贝
发布时间:2024-12-04T17:03:03
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.69</version> <!-- 同样,请根据需要替换为最新版本 -->
</dependency>
package cn.studyjava;
import java.io.FileWriter;
import java.io.IOException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Security;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.openssl.PEMWriter;
public class StudyJavaApplication {
static {
// 添加 BouncyCastle 提供者
Security.addProvider(new BouncyCastleProvider());
}
public static void main(String[] args) throws NoSuchAlgorithmException, IOException {
// 1. 创建一个 RSA 密钥对生成器
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048); // 密钥位数,可以选择 2048 或更高
// 2. 生成密钥对
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
// 3. 将公钥和私钥写入文件
writePemFile("public_key.pem", publicKey);
writePemFile("private_key.pem", privateKey);
}
// 写入 PEM 文件
private static void writePemFile(String fileName, Object key) throws IOException {
try (PEMWriter pemWriter = new PEMWriter(new FileWriter(fileName))) {
pemWriter.writeObject(key);
}
}
}
到此就可以生成公私钥了。