kol*_*bok 5 java jar sign digital-signature jarsigner
正如我从https://docs.oracle.com/javase/tutorial/deployment/jar/intro.html了解到的,使用jarsigner签名jar文件的过程如下:
清单文件将使用每个文件的哈希列表进行更新:
名称:com / qarks / util / files / diff / ui / main / DiffMergeFrame.class SHA-256-摘要:GZgPXG9YnmVGXb + hFwnJF4im4hb / qixX2Gs + ZNpdGFU =
名称:com / qarks / util / ui / swing / PrintManager.class SHA-256-摘要:cO6XolXrk5NlHBocDF0fzojlwSAKlDoGsY / jdJ0fzdY =
签名文件(* .SF)已创建。它包含:
创建签名块文件(* .RSA,*。DSA)。它存储* .SF签名文件的数字签名。
因此,我想知道为什么我们根本需要* .SF-为什么我们不能仅签名清单文件而不是* .SF文件?
还有* .SF文件中具有哈希值的目的是什么(附加检查?在什么情况下?)?
签名文件 ( .SF) 代表文件的签名者.jar- 从技术上讲可以有多个签名者。
.jar为了回答你的第二个问题,想象一下文件在签名后被修改的情况。该manifest文件将被更改,因此.SF( *-Digest-Manifest) 中的哈希值将不再与当前.manifest文件的哈希值匹配。
但是,如果仅将新文件添加到 中.jar,它仍然会通过验证,因为验证算法(除其他外)会查看 中的每个条目.SF并根据 中的相应条目验证哈希值(将忽略manifest中的新条目) manifest。
总而言之,.SF用于验证签名时的所有文件.jar均未更改。
您可以在此处阅读有关签名验证的更多信息。
| 归档时间: |
|
| 查看次数: |
799 次 |
| 最近记录: |