如果您只想将您的私钥输出到密码短语“12345”受保护的 PEM 格式和文件“privatekey.pem”,您可以使用此 BC 代码:
JceOpenSSLPKCS8EncryptorBuilder encryptorBuilder = new JceOpenSSLPKCS8EncryptorBuilder(PKCS8Generator.PBE_SHA1_3DES);
encryptorBuilder.setRandom(EntropySource.getSecureRandom());
encryptorBuilder.setPasssword("12345".toCharArray());
OutputEncryptor oe = encryptorBuilder.build();
JcaPKCS8Generator gen = new JcaPKCS8Generator(privKey,oe);
PemObject obj = gen.generate();
PEMWriter pemWrt = new PEMWriter(new FileWriter("privatekey.pem"));
pemWrt.writeObject(obj);
pemWrt.close();
然后之后您可以使用 openssl 获取私钥
$ openssl rsa -in privatekey.pem -check
输入 privatekey.pem 的密码:
RSA 密钥正常
编写 RSA 密钥
-----开始 RSA 私钥-----
......
-----结束 RSA 私钥-----
PEMWriter 的“标准”使用不会通过密码保护您的私钥:(