.keystore 文件和 .jks 文件之间的区别

问题描述 投票:0回答:3

我试图找出

.keystore
文件和
.jks
文件之间的区别,但我找不到它。我知道
jks
代表“Java keystore”,两者都是存储键/值对的方法。

使用其中一种与另一种相比有什么区别或偏好吗?

keystore jks
3个回答
260
投票

最终,

.keystore
.jks
只是文件扩展名:您可以明智地命名您的文件。

某些应用程序使用存储在

$HOME/.keystore
中的密钥库文件:通常暗示它是 JKS 文件,因为 JKS 是 Sun/Oracle Java 安全提供程序中的默认密钥库类型,直至 Java 8。并非每个人都使用JKS 文件的
.jks
扩展名,因为它被默认为默认扩展名。 自 Java 9 起,默认格式为 PKCS#12(通常带有
.p12
pfx
扩展),但尚不清楚是否所有应用程序都跟上了这一变化。我建议使用扩展名,只是为了记住要指定的类型(如果需要)。

在 Java 中,“keystore”一词可以具有以下任一含义,具体取决于上下文:

在谈论文件和存储时,这并不是真正的键/值对存储设施(有很多或其他格式)。相反,它是一个存储加密密钥和证书的容器(我相信其中一些还可以存储密码)。一般来说,这些文件是加密的并受密码保护,以免未经授权的人员获取这些数据。

Java 使用其

KeyStore
类和相关 API 来使用密钥库(无论它是否基于文件)。
JKS
是 Java 特定的文件格式,但该 API 也可用于其他文件类型,通常是 PKCS#12。当您要加载密钥库时,必须指定其密钥库类型。传统的扩展是:

  • .jks
    对于类型
    "JKS"
    ,
  • .p12
    .pfx
    表示类型
    "PKCS12"
    (规范名称为 PKCS#12,但
    #
    未用于 Java 密钥库类型名称)。

此外,BouncyCastle 还提供了其实现,特别是 BKS(通常使用

.bks
扩展),它经常用于 Android 应用程序。


108
投票

你对此感到困惑。

A

keystore
是证书、私钥等的容器。

此密钥库的格式有规范,主要是 #PKCS12

JKS 是 Java 的密钥库实现。还有BKS等

这些都是密钥库类型

所以回答你的问题:

.keystore 文件和 .jks 文件之间的区别

没有。 JKS 是密钥库文件。 但密钥库类型之间存在差异。例如。

JKS
vs
#PKCS12


8
投票

选择 .keystore 而不是 .jks 的一个原因是,当您导航选择密钥库文件时,Unity 会识别前者,但不会识别后者(Unity 2017.3,macOS)。

© www.soinside.com 2019 - 2024. All rights reserved.