# 验证 JAR 文件签名

> 原文： [https://docs.oracle.com/javase/tutorial/security/toolfilex/rstep2.html](https://docs.oracle.com/javase/tutorial/security/toolfilex/rstep2.html)

作为 Ruth，您现在已将 Stan 的公钥证书作为“可信证书”导入`exampleruthstore`密钥库。您现在可以使用`jarsigner`工具验证 JAR 文件签名的真实性。

验证签名的 JAR 文件时，验证签名是否有效以及 JAR 文件是否未被篡改。您可以通过以下命令为`sContract.jar`文件执行此操作：

```
jarsigner -verify -verbose -keystore exampleruthstore sContract.jar 

```

您应该看到如下内容：

```
       183 Fri Jul 31 10:49:54 PDT 1998 META-INF/SIGNLEGAL.SF
       1542 Fri Jul 31 10:49:54 PDT 1998 META-INF/SIGNLEGAL.DSA
       0 Fri Jul 31 10:49:18 PDT 1998 META-INF/
smk    1147 Wed Jul 29 16:06:12 PDT 1998 contract

 s = signature was verified 
 m = entry is listed in manifest
 k = at least one certificate was found in keystore
 i = at least one certificate was found in identity scope

jar verified.

```

请务必使用`-verbose`选项运行命令以获取足够的信息以确保以下内容：

*   合同文件是 JAR 文件中已签名且其签名已经过验证的文件（这是`s`表示的内容）
*   用于验证签名的公钥是在指定的密钥库中，因此受信任（这是`k`表示的）。