Java 创建.jks文件以在Eclipse中存储密钥库
现在我正在尝试创建一个Java程序,该程序将能够使用密钥对数据进行加密/解密。我目前的问题是:Java 创建.jks文件以在Eclipse中存储密钥库,java,encryption,keystore,Java,Encryption,Keystore,现在我正在尝试创建一个Java程序,该程序将能够使用密钥对数据进行加密/解密。我目前的问题是: 如何在Eclipse中创建.jks文件,以便运行该文件的任何计算机都能自动创建该文件 这是我目前用来创建新密钥库的代码: java.io.FileInputStream fis = null; try { fis = new java.io.FileInputStream("keyStoreName"); // This is where
java.io.FileInputStream fis = null;
try {
fis = new java.io.FileInputStream("keyStoreName"); // This is where
// the empty .jks file would go
} finally {
if (fis != null) {
fis.close();
}
}
keystore.load(fis, keyPassword);
Eclipse是否在项目文件夹中查找任何带有字符串名称的.jks文件?(由
keyStorename
表示)您可以使用KeyStore
类轻松创建JKS密钥存储:
File f = new File("test.jks");
KeyStore keyStore = KeyStore.getInstance("JKS");
keyStore.load(null, null); // you have to initialize it
//keyStore.set...args // add what you want
try (FileOutputStream fout = new FileOutputStream(f)) {
keyStore.store(fout, "changeit".toCharArray());
}
对的请注意,JKS密钥存储库已被弃用,建议使用PKCS#12,它是唯一需要的密钥存储库。然而,我相信JKS密钥库将在未来很长一段时间内继续得到Oracle JCE提供商的支持。(@JamesKPolk)尽管JKS不支持SecretKey条目,只支持PrivateKey(+certs)和TrustedCert。JCEKS确实支持SecretKey,我同样希望它会继续得到支持。在Eclipse下运行的程序在其工作目录中查找任何相对路径名(不仅仅是密钥库),默认为项目目录,但可以在适用的运行/调试配置中更改。