2012-02-06 148 views
0

我产生从下面的代码私钥:保护密钥文件中的

KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA","BC"); 
    kpg.initialize(512); 
    KeyPair   pair = kpg.genKeyPair(); 

我要存储在文件中的私钥,我希望把密码的文件来保护it.Is有可能在编程JAVA?

我已经看到openssl命令,它生成密钥并加密它,放入一个文件并保留该文件的密码。但我不知道文件存储在哪里? 无论如何,我想把一个java程序的密码...

回答

1

这样做的标准方法是将密钥存储在密钥库中。有许多不同的密钥存储格式,Java倾向于默认为JKS(Java密钥存储)。这些文件可以保存证书和私钥,并且通常使用密码进行保护,用于派生密钥来加密内容。

如何做到这一点programmaticlly在javadoc中为Keystore类很好地阐述,您可以在其中找到您可能需要使用的相关类的链接。这里是链接:http://docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html

0

有很多潜在的解决方案。但是,最好通过重新使用现有标准来提供服务。

E.g.您应该能够将密钥对保存在密码保护的PKCS#12文件中 - 即使不包含X.509证书也是如此。这将保护您的密钥对,并且如果您需要在其他系统或其他语言中重复使用它,它将会更具前瞻性。