Untitled
unknown
plain_text
2 years ago
1.8 kB
4
Indexable
import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.Base64; public class RSAKeyToPEM { public static void main(String[] args) throws Exception { // Generate RSA key pair KeyPair keyPair = generateRSAKeyPair(); // Save private key to PEM file savePrivateKeyToPEM(keyPair.getPrivate(), "private_key.pem"); // Save public key to PEM file savePublicKeyToPEM(keyPair.getPublic(), "public_key.pem"); } private static KeyPair generateRSAKeyPair() throws NoSuchAlgorithmException { KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); // You can choose the key size return keyPairGenerator.generateKeyPair(); } private static void savePrivateKeyToPEM(PrivateKey privateKey, String filePath) throws Exception { PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(privateKey.getEncoded()); saveToPEM(filePath, "PRIVATE KEY", spec.getEncoded()); } private static void savePublicKeyToPEM(PublicKey publicKey, String filePath) throws Exception { X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKey.getEncoded()); saveToPEM(filePath, "PUBLIC KEY", spec.getEncoded()); } private static void saveToPEM(String filePath, String type, byte[] keyBytes) throws Exception { String pemString = "-----BEGIN " + type + "-----\n" + Base64.getEncoder().encodeToString(keyBytes) + "\n-----END " + type + "-----\n"; Path path = Paths.get(filePath); Files.write(path, pemString.getBytes()); } }
Editor is loading...
Leave a Comment