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