【问题标题】:Java digital-signing related files (MANIFEST.MF, *.SF, *.DSA) and their content?Java 数字签名相关文件(MANIFEST.MF、*.SF、*.DSA)及其内容?
【发布时间】:2013-08-02 02:37:37
【问题描述】:

我试图了解 jar 和 jarsigner 在 jarring 和注册 java 代码时经历了哪些步骤,以编程方式复制这些步骤的一部分。

我很想知道 .SF 文件的具体内容,因为我已经阅读了许多文档,每个文档都略有不同,一些示例:

为 JAR 中的每个文件计算摘要(或哈希),并且 包含在清单中,例如,

名称:Hello.class SHA1-Digest:(文件的 160 位哈希值)

当 JAR 文件被签名时,一个扩展名为“.SF”的签名文件是 在 META-INF 目录中创建。每个文件的摘要值为 使用签名者的私钥签名(或加密)。例如,

名称:Hello.class SHA1-Digest:(使用签名者加密的摘要值 私钥)

签名文件包含 存档的文件看起来类似于中的摘要值条目 显现。但是,虽然清单中的摘要值是 根据文件本身计算,签名中的摘要值 文件是根据清单中的相应条目计算的。 签名文件还包含整个清单的摘要值

  • 以模糊和非描述性方式处理论点的其他来源

嗯.. .SF 文件究竟包含什么?它的条目是如何计算的?

如果需要,请在发布答案之前使用哈希计算器like this 进行检查!

【问题讨论】:

  • 您可以签署一个 jar 文件,然后“解压”以查看示例...

标签: java hash jar digital-signature jarsigner


【解决方案1】:

另一方面,在 .SF 文件中,给定源文件的摘要值是源文件清单文件中三行的哈希值。

更多信息,请看 http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jarsigner.html

【讨论】:

  • 通过编写一个程序来检查这一点,该程序将整个 MANIFEST 内容作为一个字符串,然后在它的所有子字符串上计算 SHA-1 哈希,然后在我的 SF 文件中查找与如果需要 4 行,“名称:”“SHA-1 摘要:”然后是两个空行。
猜你喜欢
  • 2017-03-24
  • 1970-01-01
  • 2016-09-18
  • 2018-08-25
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
相关资源
最近更新 更多