有什么方法可以将通过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()
。