*.rsa和*.sf manifest.mf从java类调用
我放弃了一个jar文件并运行了它。但是,它在打开后会立即自行关闭。是否可以从java代码中调用*.rsa或*.sf或manifest.mf的信息来检查它是否已更改,谢谢。实际上我在jar文件类及其返回的证书中找到了一个方法,这意味着在jar文件中有一个证书控制桥,代码是:*.rsa和*.sf manifest.mf从java类调用,java,security,rsa,Java,Security,Rsa,我放弃了一个jar文件并运行了它。但是,它在打开后会立即自行关闭。是否可以从java代码中调用*.rsa或*.sf或manifest.mf的信息来检查它是否已更改,谢谢。实际上我在jar文件类及其返回的证书中找到了一个方法,这意味着在jar文件中有一个证书控制桥,代码是: private Certificate[] XQ(et etProp) throws Exception{ System.out.println("Rg test 78"); String va
private Certificate[] XQ(et etProp) throws Exception{
System.out.println("Rg test 78");
String value = null;
Iterator iterator = etProp.af().iterator();
while (iterator.hasNext()) {
un.JI innerUn = (un.JI) iterator.next();
String certificateToUpperCase = innerUn.XQ().toUpperCase();
if (certificateToUpperCase != null && certificateToUpperCase.startsWith("META-INF/")
&& (certificateToUpperCase.endsWith(".RSA") || certificateToUpperCase.endsWith(".DSA"))) {
value = innerUn.XQ();
break;
}
}
if (value == null) {
System.out.println("Rg test 81");
qm.XQ((String) "Could not find certificates file");
return null;
} else {
System.out.println("Rg test 82");
byte[] arrayAf = etProp.af(value);
if (arrayAf == null) {
System.out.println("Rg test 83");
Object[] objectsArray = new Object[] { value };
return null;
} else {
System.out.println("Rg test 84");
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(arrayAf);
Collection collection;
try {
System.out.println("Rg test 85");
CertificateFactory certificateFactory = CertificateFactory
.getInstance("X.509");
collection = certificateFactory.generateCertificates(byteArrayInputStream);
} catch (CertificateException ex) {
qm.XQ((String) String.format(
"Could not parse certificate data: %s",
new Object[] { ex.toString() }));
return null;
}
Certificate[] certificates = new Certificate[collection.size()];
int i = 0;
Certificate certificate;
for (Iterator iterator1 = collection.iterator(); iterator1.hasNext(); certificates[i++] = certificate) {
System.out.println("Rg test 87");
certificate = (Certificate) iterator1.next();
}
return certificates;
}
}
}
保护jar文件不被破解是一个非常好的举措。当我把*.rsa、*.sf和manifest.mf放在原版上时,它工作得很好。打开一个DOS框并运行它,这样你就可以读取错误消息。辞职之前有什么改变?实际上我已经改变了一些东西,但它没有工作。然后我想辞职可能有问题,我刚刚导出了一个zip原始文件,删除了META-INF/(.rsa,*.sf)文件,并重新辞职。但是现在我注意到jar文件有META-INF/(.dsa,*.sf)文件。如果是如何在ubuntu操作系统中像原版一样签名,那么dsa而不是rsa会有很大区别吗?谢谢。我已经用rsa签署了jar文件,给出了警告:警告:“签名者证书尚未生效。没有提供-tsa或-tsacert,并且这个jar没有时间戳。如果没有时间戳,用户可能无法在签名者证书到期日(2015-06-04)后或任何未来撤销日期后验证此jar。“但是,它不再工作。”。。