文档

Java™ 教程-Java Tutorials 中文版
验证签名的 JAR 文件
Trail: Deployment
Lesson: Packaging Programs in JAR Files
Section: Signing and Verifying JAR Files

验证签名的 JAR 文件

通常,签名 JAR 文件的验证将由 Java™ 运行时环境负责。你的浏览器将验证它下载的签名 applets。使用解释器的 -jar 选项调用的签名应用程序将由运行时环境验证。

但是,你可以使用 jarsigner 工具自行验证签名的 JAR 文件。你可能希望这样做,例如,测试你已准备好的已签名 JAR 文件。

用于验证签名 JAR 文件的基本命令是:

jarsigner -verify jar-file

此命令将验证 JAR 文件的签名,并确保存档中的文件自签名后未发生更改。如果验证成功,你将看到以下消息:

jar verified.

如果你尝试验证未签名的 JAR 文件,则会出现以下消息:

jar is unsigned. (signatures missing or not parsable)

如果验证失败,则会显示相应的消息。例如,如果自 JAR 文件签名以来 JAR 文件的内容已更改,则在尝试验证文件时将产生类似于以下内容的消息:

jarsigner: java.lang.SecurityException: invalid SHA1 
signature file digest for test/classes/Manifest.class

注意: 如果签名的 JAR 文件使用的是在 java.home/lib/security/java.security 文件(其中 java.home 是安装 JRE 的目录) 的 jdk.jar.disabledAlgorithms 安全属性中指定的任何算法,则 JDK 将签名的 JAR 文件作视为未签名文件。

Previous page: Signing JAR Files
Next page: Using JAR-related APIs