Java 生成rsa公钥密钥

33 阅读1分钟

package src.com;
import java.security.*;
import java.util.Base64;
public class rsaKey {

    public static void main(String[] args) throws NoSuchAlgorithmException{
        KeyPairGenerator keyType= KeyPairGenerator.getInstance("RSA");

        keyType.initialize(1024);

        KeyPair keyPair = keyType.generateKeyPair();

        PublicKey publicKey = keyPair.getPublic();
        PrivateKey privateKey = keyPair.getPrivate();

        byte[] pubKeyBytes = publicKey.getEncoded();
        String pubKeyBase64 = Base64.getEncoder().encodeToString(pubKeyBytes);
        byte[] priKeyBytes = privateKey.getEncoded();
        String priKeyBase64 = Base64.getEncoder().encodeToString(priKeyBytes);

        System.out.println("publicKey: "+pubKeyBase64);
        System.out.println("privateKey: "+priKeyBase64);

        System.out.println("===========================");

        String pub = bytesToHex(publicKey.getEncoded());
        String pri = bytesToHex(privateKey.getEncoded());
        System.out.println("pub: "+pub);
        System.out.println("pri: "+pri);

    }

    // 将字节数组转换为十六进制字符串
    private static String bytesToHex(byte[] bytes) {
        StringBuilder result = new StringBuilder();
        for (byte b : bytes) {
            result.append(String.format("%02X", b));
        }
        return result.toString();
    }
}