java - 在java中提取私钥

标签 java private-key

我有使用 java 类 CertAndKeyGen 和 X500Name 创建的证书,我能够生成字节数组中的证书。现在我想要我在证书中使用的私钥并将其转换为可读格式。下面是我用来创建证书的代码,

    CertAndKeyGen keypair = new CertAndKeyGen("RSA", "SHA1WithRSA", null); 
    X500Name x500Name = new X500Name(commonName, organizationalUnit, organization, city, state, country);
    keypair.generate(keysize);
    PrivateKey privKey = keypair.getPrivateKey();
    PKCS10 certReq = keypair.getCertRequest(x500Name);
    X509Certificate[] chain = new X509Certificate[1];
    chain[0] = keypair.getSelfCertificate(x500Name, new Date(), (long) validity * 24 * 60 * 60);
    keyStore.setKeyEntry(alias, privKey, keyStorePassword.toCharArray(), chain);                    
    ByteArrayOutputStream bs = new ByteArrayOutputStream();
    PrintStream ps = new PrintStream(bs);
    certReq.print(ps);
    byte[] certReqPrintable = bs.toByteArray(); 

我没有任何线索,请帮助我朝着正确的方向前进以获取私钥并将其转换为可读格式。提前致谢。

最佳答案

如果要将私钥保存到文件中,请使用

byte[] privateKeyBytes = privKey.getEncoded();

这将返回 DER 编码(二进制)格式的 key 。

如果您只想在控制台上显示包含的值,只需使用 toString() 打印它即可:

System.out.println(privKey);

关于java - 在java中提取私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030195/

相关文章:

java - 每次单元测试后回滚

java - 如何在android中的可扩展 ListView 组和 subview 中加载json数据?

security - parse.com 安全性

linux - 如何设置公钥认证?

node.js - 在 Node.js 中使用私钥/公钥加密文件最合适、最安全的方法是什么

java 跟踪txt文件内的更改

java - 如何根据中心坐标确定矩形的左上坐标?

c# - 在带有 X.509 证书的非对称加密中使用公钥

java - JSch 的公钥身份验证失败,但使用相同的 key 与 OpenSSH 一起使用

java - rxJava 通过过滤器列表删除列表元素