2013-01-03 54 views
3

有没有什么办法,我们可以写这个公共的私钥通过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(); 
+0

什么阻止你? –

+0

CipherParameter不可序列化。 – Dilshan

回答

2

演员的参数达到的实际类型(打印出privKey.getClass().getName()找出它是什么)。 RSA私钥将是一种RSAPrivateCrtKeyParameters。一旦你得到了,你可以简单地检索到组成私钥的BigInteger。这些应该是可序列化的。如果您想在PKCS#8/PKCS#1中对其进行编码,则应创建一个兼容JCE的RSACrtPrivateKey实例并呼叫getEncoded()