有什么方法可以将通过RSAKeyPairGenerator生成的此公有私钥写入文件系统(我知道这不是一个好主意,但是我需要检查是否可以这样做)?

RSAKeyPairGenerator将导致CipherParameters,并且我正在使用为Java提供的充气城堡安全性。

代码如下,以获取我的密钥。

    RSAKeyPairGenerator keyPairGenerator = new RSAKeyPairGenerator();

    keyPairGenerator.init(new RSAKeyGenerationParameters(new BigInteger(
            "10001", 16), new SecureRandom(), 1024, 80));

    AsymmetricCipherKeyPair keys = keyPairGenerator.generateKeyPair();
    CipherParameters pubKey = keys.getPublic();
    CipherParameters privKey = keys.getPrivate();

最佳答案

将参数强制转换为实际类型(打印出privKey.getClass().getName()找出其含义)。 RSA私钥将是RSAPrivateCrtKeyParameters的类型。一旦知道了,您就可以简单地检索组成私钥的BigInteger。这些应该可序列化。如果要在PKCS#8 / PKCS#1中对其进行编码,则应创建一个与JCE兼容的RSACrtPrivateKey实例并调用getEncoded()

10-07 12:06