Robert..
7
那么你应该仔细阅读BouncyCastle文档.它声明了您使用的构造函数:
// Constructor for an unencrypted private key PEM object.
PKCS8Generator(java.security.PrivateKey key)
// Constructor for an encrypted private key PEM object.
PKCS8Generator(java.security.PrivateKey key, java.lang.String algorithm, java.lang.String provider)
因此,您正在使用构造函数来创建未加密的PKCS8Generator实例.您设置的密码无效.
根据文档使用其他构造函数之一来创建加密实例.
注意:问题中的代码需要过时版本的BouncyCastle(1.4x?),因为当前版本(1.5x)具有不同的构造函数,与本答案中提供的版本不兼容.
对于较新的版本,请使用:
import org.bouncycastle.openssl.jcajce.JcaPEMWriter;
JcaPEMWriter writer = new JcaPEMWriter(new PrintWriter(System.out));
writer.writeObject(sk);
writer.close();
当然可能会替换PrintWriter其他任何东西Writer.