保护文件中的密钥

时间:2012-02-06 12:22:11

标签: java security encryption cryptography password-protection

我从以下代码生成了私钥:

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

我想将私钥存储在文件中,我想为文件设置密码以保护它。是否可以以编程方式在JAVA中使用?

我见过openssl命令,它生成密钥并对其进行加密,放入文件并保存该文件的密码。但我不知道文件存储在哪里? 无论如何,我想通过javaprogram输入密码......

2 个答案:

答案 0 :(得分:1)

执行此操作的标准方法是将密钥存储在密钥库中。有许多不同格式的密钥库,Java往往默认为JKS(Java密钥库)。这些文件可以包含证书和私钥,通常使用密码保护,用于派生密钥以加密内容。

如何在Keystore类的javadoc中很好地编写了这样的程序,您可以在其中找到可能需要使用的相关类的链接。这是链接:http://docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html

答案 1 :(得分:0)

有很多潜在的解决方案。但是,通过重新使用现有标准,您将获得最佳服务。

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