如何使用java PKCS12密钥库中的证书加密和解密文件?
有人能解释一下如何使用存储在java“PKCS12”密钥库中的证书加密和解密文件吗? 对PEM文件使用PKCS12加密 要运行它,首先需要PFX Personal中的Java密钥库 文件交换格式 Keytool命令: 这将生成mykeystore.pfx文件。可以导入此文件 作为Firefox中的证书如何使用java PKCS12密钥库中的证书加密和解密文件?,java,cryptography,pkcs#12,Java,Cryptography,Pkcs#12,有人能解释一下如何使用存储在java“PKCS12”密钥库中的证书加密和解密文件吗? 对PEM文件使用PKCS12加密 要运行它,首先需要PFX Personal中的Java密钥库 文件交换格式 Keytool命令: 这将生成mykeystore.pfx文件。可以导入此文件 作为Firefox中的证书 Key key = store.getKey("alias_for_key", password.toCharArray()); 导入-打开Firefox–工具–选项–高级–查看证书–您的证书–
Key key = store.getKey("alias_for_key", password.toCharArray());
导入-打开Firefox–工具–选项–高级–查看证书–您的证书–导入–选择PFX文件–导入
导出-选择证书-查看-详细信息-将其导出到X.509 PEM。您还可以导出到DER
一,。私钥
首先,我们需要从PFX文件中提取私钥
二,。公钥
其次,需要使用公钥对文件进行加密。但首先需要公钥
三,。用公钥加密
现在您有了公钥,可以对文件进行加密了
四,。用私钥解密
所以现在文件被加密了,它可以被发送/存储,以便接收方…接收并解密它。要解密它,我们需要私钥,幸运的是它保存/存储在Private.pem文件中
五,。使用AES密钥进行加密/解密
另一种加密/解密东西的方法是通过AES 256位密钥。密钥将随机生成每个文件并写入文件系统。然后可以使用上述RSA机制加密此AES密钥。这将提高大型文件的加密性能
来源-正如提到的尤金·梅耶夫斯基,你的问题是错误的,无法以其原始形式得到回答。但我会尽力为你澄清一下加密格式用于存储证书和私钥。加密或解密数据时,使用PKCS12容器的密码实现和内容 Java内置了对PKCS12密钥库的支持,使用这种容器与standart JKS密钥库没有太大区别 例如,加载JKS密钥库的代码
KeyStore store = KeyStore.getInstance(KeyStore.getDefaultType());
store.load(is, password.toCharArray());
和加载PKCS12密钥库的代码
KeyStore store = KeyStore.getInstance("PKCS12");
store.load(is, password.toCharArray());
之后,您可以无限访问密钥库内容。通过Firefox中的导入/导出,您可以获得存储在密钥库中的证书和密钥,而无需执行这种奇怪的操作
Key key = store.getKey("alias_for_key", password.toCharArray());
接下来,当您拥有密钥和证书时,就是加密。用于加密。您需要密码类的实例
Cipher c = Cipher.getInstance(key.getAlgorithm());
c.init(Cipher.ENCRYPT_MODE, key);
准备加密的密码。若加密数据相对较小,则可以使用更新方法,另一种方法是创建CipherOutputStream
要解密,只需使用不同模式的init密码,取决于加密算法、密钥。对于对称算法密钥将相同,对于非对称算法加密使用公钥,而对于解密使用私钥
在此,您可以了解更多有关加密的信息。谢谢您的即时回复。.pfx和PEM文件是如何使用的?@Sasha pfx文件通常是包含加密私钥的文件,通常受密码保护,PEM基本上是包含私钥的文件,如果您希望稍后更新扩展,这将非常有用point@EugeneMayevskiEldoSCorp——人们会感谢帮助/回答/引导他们走向正确方向的人,而不是找出错误或纠正问题的人。希望你能把自己的努力放在正确的位置。谢谢。@EugeneMayevski'EldoSCorp如果你这么不高兴,为什么不重新编辑它?…或者你可以在提到的地方去掉“算法”这个词,现在问题就好了。PKCS12不是加密算法,所以你的问题毫无意义。这个问题及其答案对我很有帮助。对于当前文本和主题行,它应该重新打开。我认为基于PKCS12的密钥存储使用包含数字的字符串作为别名,您不能只使用任何别名,您将别名存储在PKCS12密钥存储?的何处?。但我必须承认我不是100%确定。PKCS12提供了比JKS更强的加密算法。切换到PKCS12可提高密钥库的完整性和机密性。