java - 如何使用Java代码防止保存jar内的公钥

标签 java security jar certificate digital-certificate

对 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/

相关文章:

java - Amazon Kinesis + 集成测试

java - 获取 WCDMA 信号强度

javascript - 将文件夹上传到服务器(mvc spring)

java - 如何使用 nimbus oauth oidc sdk 通过代理获取 token

java - Web文档的数字签名

c# - 为自动化存储密码的最佳实践

java - 在命令提示符下运行 jar 文件

javascript - 在 javascript 中,我可以算出我当前的 url 是否位于 127.0.0.1 吗?

Android,从导入的 jar 文件中找不到类

build - mvn :assembly and mvn:package 之间有什么区别