2010-05-06 85 views

回答

3

差不多。实际上它不是被签名的JAR文件,而是它的内容。

从技术上讲,要签名的JAR归档文件中的各个文件会使用合适的散列函数(例如SHA-1)进行散列处理。散列值在清单中报告。然后在META-INF/目录中添加一个额外的文件(*.SF文件);该文件包含每个签名文件的条目:每个条目都包含清单中相应条目的散列(因此它或多或少是散列的散列)。 *.SF还包含一个条目,其中包含清单中主标题的散列。最后,*.SF文件本身已签名,导致格式(以前称为“PKCS#7”)的*.RSA*.DSA文件(本身位于META-INF/目录中)。 CMS依赖于X.509证书的全部设备。

所以这是相当间接的。必须理解的是,只有JAR中的单个文件才被签名;在给定的JAR文件中可以有签名和未签名部分的混合。