gpt4 book ai didi

android - JKS、BKS 和 PKCS12 文件格式

转载 作者:行者123 更新时间:2023-12-04 13:47:18 31 4
gpt4 key购买 nike

我正在设置一个 headless 服务器,该服务器使用用户提供的数据(JS、CSS、HTML + keystore )为 Android 构建 Phonegap 混合应用程序。我想进行一些基本的客户端检查,以确保上传的 keystore 有效。对于 JKS 文件,我发现我可以通过确保所提供文件的前四个字节是指定的魔数(Magic Number) 0xFEEDFEED 来进行基本检查 here .我意识到这并不能消除用户提供垃圾的可能性,但它确实有助于作为初步的客户端屏幕。我想对 PKCS12 和 BKS keystore 实现类似的筛选,但一直找不到对这些文件格式的任何解释。如果有人能够提供有关该主题的一些信息,我将不胜感激。

最佳答案

首先,需要考虑两件事:

  • 您的列表中缺少 JCEKS(更安全的 JKS 版本,魔数(Magic Number)是 0xCECECECE)。
  • BKS 有两个不兼容的版本。 Bouncy CaSTLe 1.47 引入了新版本,完全取代了旧版本。因此,使用 BC 1.47 或更新版本生成的 BKS keystore 无法使用 BC 1.46 或更早版本读取。在 BC 1.49 中添加了一个新的 keystore 类型“BKS-V1”,它与旧格式兼容(参见 BC Release Notes )。

BKS 格式的前 4 个字节以版本号开头,以空字节和 SHA-1 散列(20 个字节)结尾。

PKCS#12 不是那么容易检测到的。您必须将其解析为 ASN.1 结构(参见 RFC 7292 ):

PFX ::= SEQUENCE {
version INTEGER {v3(3)}(v3,...),
authSafe ContentInfo,
macData MacData OPTIONAL
}

如果文件不能解析为上述ASN.1结构,则不是PKCS#12。

有关 PKCS12 格式的更易于理解的解释 check here .

关于android - JKS、BKS 和 PKCS12 文件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239875/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com