我试图找到.keystore文件和.jks文件之间的区别,但我找不到它。我知道jks是“Java密钥库”,两者都是存储键/值对的方法。
.keystore
.jks
jks
两者之间有什么区别或偏好吗?
你对此感到困惑。
keystore是一个包含证书、私钥等的容器。
keystore
这个密钥库的格式有一些规范,主要的是# PKCS12
JKS是Java的密钥存储库实现。还有BKS等。
这些都是密钥存储库类型。
我来回答你的问题
.keystore文件和.jks文件的区别
没有。JKS是keystore文件。 不过密钥库类型之间是有区别的。例如:JKS vs #PKCS12
JKS
#PKCS12
归根结底,.keystore和.jks只是文件扩展名:由你来合理地命名你的文件。一些应用程序使用存储在$HOME/.keystore中的keystore文件:通常暗示它是一个JKS文件,因为JKS是Sun/Oracle Java安全提供程序中的默认密钥库类型。并不是每个人都对JKS文件使用.jks扩展名,因为它是默认的。我建议使用扩展,只是为了记住指定哪种类型(如果需要的话)。
$HOME/.keystore
在Java中,根据上下文,单词keystore可以有以下任何一种含义:
在讨论文件和存储时,这实际上不是键/值对的存储工具(有很多或其他格式)。相反,它是一个存储加密密钥和证书的容器(我相信其中一些还可以存储密码)。一般来说,这些文件都是加密和密码保护的,这样就不会让未经授权的一方获得这些数据。
Java使用它的KeyStore类和相关API来使用密钥库(不管它是否是基于文件的)。JKS是一种特定于java的文件格式,但该API也可以用于其他文件类型,通常是PKCS#12。当您希望加载密钥存储库时,必须指定其密钥存储库类型。传统的扩展是:
KeyStore
"JKS"
.p12
.pfx
"PKCS12"
#
此外,BouncyCastle还提供了它的实现,特别是商品(通常使用.bks扩展),它经常用于Android应用程序。
.bks
选择.keystore而不是.jks的一个原因是,当你导航选择keystore文件时,Unity可以识别前者,但不能识别后者(Unity 2017.3, macOS)。