当前位置: 首页 > 面试题库 >

密钥库类型:使用哪个?

范浩荡
2023-03-14
问题内容

通过查看java.securitymy
的文件JRE,我发现默认使用的密钥库类型设置为JKS。在这里,列出了可以使用的密钥库类型。

推荐的密钥库类型吗?不同密钥库类型的优缺点是什么?


问题答案:

除了链接到的标准名称列表中列出的类型以外,还有更多类型。您可以在加密提供程序文档中找到更多信息。最常见的肯定是JKS(默认)和PKCS12(对于PKCS#12文件,通常带有扩展名.p12,有时带有.pfx)。

如果您停留在Java世界中,那么JKS是最常见的。PKCS#12不是特定于Java的,使用从浏览器备份或来自基于OpenSSL的工具备份的证书(带有私钥)特别方便(keytool在Java
6之前无法转换密钥库并导入其私钥) ,因此您必须使用其他工具)。

如果您已经有PKCS#12文件,则PKCS12直接使用该类型通常会更容易。可以转换格式,但是如果直接选择密钥库类型,则几乎没有必要。

在Java 7中,PKCS12它主要用作 密钥库, 但对 信任
用处不大(请参阅密钥库和truststore之间的区别(http://codingdict.com/questions/105824),因为没有私有密钥就无法存储证书条目。相反,JKS并不需要每个条目都是私钥条目,因此您可以拥有仅包含证书的条目,这对于信任存储很有用,在信任存储中您存储了信任的证书列表(但是您没有他们的私钥)。

这在Java 8中已更改,因此您现在也可以在PKCS12商店中拥有仅证书条目。(有关这些更改和更多计划的更多详细信息,请参见JEP
229:默认情况下创建PKCS12密钥库。)

还有其他一些密钥库类型,可能不太常用(取决于上下文),包括:

  • PKCS11,用于PKCS#11库,通常用于访问硬件加密令牌,但是Sun提供程序实现也通过此支持NSS存储(来自Mozilla)。
  • BKS,使用BouncyCastle提供程序(通常用于Android)。
  • Windows-MY/ Windows-ROOT,如果要直接访问Windows证书存储区。
  • KeychainStore,如果您想直接使用OSX钥匙串。


 类似资料:
  • 我不记得我的Android应用程序使用了哪个密钥库文件。有什么方法可以找到吗? 或者我可以搜索硬盘上的所有密钥库文件吗?问题是文件没有扩展名。

  • <代码>java。安全KeyStore使用KeyStoreSpi实现来提供不同类型的KeyStore。基本OpenJDK支持JKS、JCEKS和PKCS12密钥库类型。前两个实现专有的Sun/Oracle格式,PKCS12是一个公共标准。 我知道JCEKS确实支持对称密钥,PKCS12则不支持。还有哪些实现(如Bouncy Castle)支持对称密钥?开发人员似乎想隐藏此类信息。E、 g.Boun

  • 使用AKV管理存储帐户:https://docs.microsoft.com/en-us/Azure/key-vault/key-vault-overview-storage-keys-powershell#manage-storage-account-keys 使用Azure Automation进行密钥循环:https://docs.microsoft.com/en-us/Azure/key-

  • 我们使用Azure Key Vault加密和解密Blob,以保护我们的文件不受开发人员或任何不想要的访问。 我创建了如下所示的RSA密钥 现在我很少怀疑了