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

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

有没有差别或偏好使用一个在另一个?

最终, .keystore.jks只是文件扩展名:您可以合理地命名文件。 某些应用程序使用存储在$HOME/.keystore的密钥库文件:通常意味着它是JKS文件,因为JKS是Sun / Oracle Java安全提供程序中的默认密钥库types 。 不是每个人都使用JKS文件的.jks扩展名,因为它默认是默认的。 我build议使用扩展名,只是为了记住指定的types(如果你需要)。

在Java中,根据上下文,密钥存储可以具有以下任一种含义:

  • API: http : //docs.oracle.com/javase/6/docs/api/java/security/KeyStore.html
  • 一个可用于备份此API的文件(或其他机制)
  • 一个密钥库而不是一个信任库,如下所述: https : //stackoverflow.com/a/6341566/372643

当谈论文件和存储时,这不是真正的键/值对的存储设备(有很多或其他格式)。 相反,它是一个容器来存储encryption密钥和证书(我相信其中一些也可以存储密码)。 一般来说,这些文件是encryption和密码保护,以免让这些数据可供未经授权的方使用。

Java使用它的KeyStore类和相关的API来使用密钥库( 不pipe它是否基于文件 )。 JKS是特定于Java的文件格式,但是API也可以与其他文件types(通常是PKCS#12)一起使用。 当你想加载密钥库时,你必须指定它的密钥库types。 传统的扩展将是:

  • types"JKS" .jks
  • types为"PKCS12" .p12.pfx (规范名称为PKCS#12,但在Java密钥库types名称中未使用# )。

此外,BouncyCastle还提供了其实现,特别是BKS (通常使用.bks扩展),这是经常用于Android应用程序。

你对此感到困惑。

keystore是证书,私钥等的容器

有什么应该是这个密钥库的格式的规格和主要是#PKCS12

JKS是Java的keystore实现。 还有BKS等

这些都是密钥库types

所以要回答你的问题:

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

空无一人。 JKS是密钥库文件。 密钥库types之间有区别。 例如JKS vs #PKCS12