对 jar 进行签名后,我们可以使用
从 jar 中检索公钥Certificate[] cert = jarentry.getCertificates();
提取证书后,我们可以将其作为可信证书保存到新的 keystore 中。
一旦完成,第二个用户就可以使用此证书签署任何 jar,不是吗?
我想将内容作为 jar 分发,内容将包含应用程序 init 的属性文件。
我想确保用户无法使用从 jarentry 中提取的证书重建属性文件。
在读取 jar 内容的代码中,我检查 jar 仅使用我的证书签名,并检查 jar 没有被篡改。
但是我想到了一个问题,如果我能够从 jar 中提取证书,那么为什么第三个人不能呢?
有什么帮助吗?
最佳答案
Once this is done , then second user can sign any jar using this certificate , isn't ?
不,您需要私钥才能签署 JAR。您无法仅使用公钥来签署 JAR。当然私钥不在证书中。
参见Signing and Verifying JAR Files在Sun的Java教程中,详细解释了原理和如何做。
关于java - 如何使用Java代码防止保存jar内的公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788210/