如何检查文件是否已签名?

how to check if a file is signed or not?

有一个 jar 文件列表,我想知道它们是否经过数字签名,它们在 windows 机器上。 我试图右键单击其中一个罐子,但看不到与数字签名相关的任何内容,有没有办法从 windows 检测文件是否已签名?

此致,

如果您安装了 JDK,您可以从 CMD 或 PS 提示符 运行 jarsigner -verify,它将检查签名是否存在或告诉您如果不存在,或者只是 运行 jar tf file.jar META-INF 并查找 $signer.SF 之类的文件名;对于 META-INF 中有很多混乱的多版本 jar,要么使用 findstr(或 PS 中的 -match)之类的工具积极搜索 .SF 文件,要么消极排除所有版本/ 文件。

如果您的意思是 Windows,则 jar 文件实际上是具有某些限制的 zip 文件,而 Explorer(自 Vista IIRC 起)理解 zip 文件。将扩展名从 .jar 更改为 .zip,然后 'open' 将文件作为文件夹并在 META-INF 中查找 $signer.SF 文件。但这是一个手动过程,因此您不能真正从文件列表中驱动它,如果这就是您的意思的话。