我试图找到.keystore
个文件和.jks
文件之间的区别,但我找不到它。我知道jks
用于“Java密钥库”,两者都是存储密钥/值对的方法。
是否有任何差异或偏好使用一个而不是另一个?
答案 0 :(得分:166)
最终,.keystore
和.jks
只是文件扩展名:您可以明智地命名文件。某些应用程序使用存储在$HOME/.keystore
中的密钥库文件:它通常暗示它是一个JKS文件,因为JKS is the default keystore type in the Sun/Oracle Java security provider。并非每个人都使用.jks
扩展名来获取JKS文件,因为它隐含为默认值。我建议使用扩展名,只是为了记住要指定的类型(如果需要)。
在Java中,单词keystore可以具有以下任一含义,具体取决于上下文:
在谈论文件和存储时,这实际上不是键/值对的存储工具(有很多或其他格式)。相反,它是一个存储加密密钥和证书的容器(我相信其中一些也可以存储密码)。通常,这些文件是加密的并受密码保护,以便不会将此数据提供给未授权方。
Java使用其KeyStore
类和相关API来使用密钥库(whether it's file based or not)。 JKS
是特定于Java的文件格式,但API也可以与其他文件类型一起使用,通常是PKCS#12。如果要加载密钥库,则必须指定其密钥库类型。传统的扩展将是:
.jks
代表"JKS"
,.p12
,.pfx
或"PKCS12"
(规范名称为PKCS#12,但Java密钥库类型名称中未使用#
)。此外,BouncyCastle还提供了其实现,特别是BKS(通常使用.bks
扩展名),它经常用于Android应用程序。
答案 1 :(得分:64)
你对此很困惑。
keystore
是证书,私钥等的容器。
这个密钥库的格式应该有什么规格,主要是#PKCS12
JKS是Java的密钥库实现。还有BKS等。
这些都是keystore 类型。
所以回答你的问题:
.keystore文件和.jks文件之间的区别
没有。 JKS是密钥库文件。
密钥库类型之间存在差异。例如。 JKS
vs #PKCS12
答案 2 :(得分:2)
选择.keystore而不是.jks的一个原因是,当您导航选择密钥库文件(Unity 2017.3,macOS)时,Unity会识别前者但不识别后者。