2016-10-04 38 views
1

我正在研究jarsigner如何工作以及META-INF文件夹中每个文件的用途。据我所知,MANIFEST.MF包含zip/jar中每个文件的列表及其摘要。 * .SF文件包含清单文件的摘要,以及每个文件的清单以及清单中该文件部分的摘要。最后,* .DSA/RSA文件包含.SF文件的数字签名。我的问题是,为什么需要一个SF文件?简单地签署清单文件并将其存储在.RSA/DSA文件中有什么优势?jarsigner中的* .SF文件有什么意义?

对文件名或内容或文件删除的任何更改都会导致更改清单,从而导致签名无效。

+0

签名的格式是什么,以及如何验证jar中的每个其他文件? *它有什么优势?*你实际想要解决什么问题? –

+0

签名文件是通过签署SF文件的二进制内容生成的。如果没有SF文件,则通过签署清单文件的二进制内容来生成签名文件。 _你实际试图解决什么问题?_只是在使用之前了解一个工具 –

+0

清单文件没有签名字段。他们可以添加一个(我想),但他们没有(通常的理由是害怕破坏旧代码)。至于在Java中的实现,你似乎已经知道它。那么我们可以帮助你什么? –

回答

0

可以在任何时候使用jar tool将文件添加到jar file。在每种情况下,MANIFEST.MF file已更新。如果MANIFEST.MF file是已签名的那个,则signature将是无效的。但是,如果单独使用*.SF file,则签名仍可以验证,前提是*.SF file中列出的文件未被更改。