我从以下代码生成了私钥:
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA","BC");
kpg.initialize(512);
KeyPair pair = kpg.genKeyPair();
我想将私钥存储在文件中,我想为文件设置密码以保护它。是否可以以编程方式在JAVA中使用?
我见过openssl命令,它生成密钥并对其进行加密,放入文件并保存该文件的密码。但我不知道文件存储在哪里? 无论如何,我想通过javaprogram输入密码......
答案 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证书也是如此。这将保护您的密钥对,如果您需要在其他系统或其他语言上重复使用它,将会更加面向未来。