gpt4 book ai didi

Java:验证 jar 是否已签名

转载 作者:行者123 更新时间:2023-12-03 23:05:41 25 4
gpt4 key购买 nike

我正在使用 Jarsigner。我想检查给定的 jar 是否已签名。如果用户上传一个 jar 文件,我想知道这个 jar 文件是否被签名。我尝试使用以下代码 ( http://docs.oracle.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html#integritycheck )

    // Ensure the jar file is signed.
Manifest man = jarFile.getManifest();
if (man == null) {
throw new SecurityException("The provider is not signed");
}

但即使我提供了一个未签名的 jar,man 对象也不是 null 并且不会抛出此异常。如何检查给定的 jar 是否刚刚签名?

最佳答案

假设您只想知道一个 jar 是否已签名(无需验证签名本身),此代码段应该有效:

  boolean isJarSigned(JarFile jarFile) {
try {
final Manifest man = jarFile.getManifest();
if (man == null)
return false;

// getEntries will contain all signed files
return !man.getEntries().isEmpty();
} catch (Throwable t) {
t.printStackTrace();

return false;
} finally {
// Make sure the jarFile gets always closed
try {
if (jarFile != null)
jarFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

顺便说一句,我知道这个答案迟到了 3 年,但我自己也在拼命寻找它,所以我想我也可以发布我的解决方案。

关于Java:验证 jar 是否已签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15616323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com