1

我使用一些 Jasypt 加密库设置了一个项目,当代码尝试执行时,第一次加密操作会引发以下错误。

Caused by: java.lang.SecurityException: The jurisdiction policy files are not signed by a        trusted signer!
at javax.crypto.JarVerifier.verifyPolicySigned(JarVerifier.java:289)
at javax.crypto.JceSecurity.loadPolicies(JceSecurity.java:316)
at javax.crypto.JceSecurity.setupJurisdictionPolicies(JceSecurity.java:261)
at javax.crypto.JceSecurity.access$000(JceSecurity.java:48)
at javax.crypto.JceSecurity$1.run(JceSecurity.java:78)
at java.security.AccessController.doPrivileged(Native Method)
at javax.crypto.JceSecurity.<clinit>(JceSecurity.java:76)
... 9 more

经过一段时间的研究,很明显我只需要替换我的 JCE 加密策略文件。我从这个链接下载了 jce7 zip: http ://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

我解压缩该文件并将两个 jar 复制到 C:\Program Files (x86)\Java\jre7\lib\security

还有一个 jre6 目录与我刚才提到的 jre7 目录处于同一级别。在我的第一次尝试失败后,我还尝试将相同的策略文件复制到 jre6 目录。我还尝试将 jre6 特定的 jar 复制到该目录,但没有成功。

编辑:我正在运行 Java 1.7.0_40

任何帮助将不胜感激。谢谢!

4

1 回答 1

1

这两个策略文件按照 README.txt 文件的指示进入“jre7/lib/security”文件夹,覆盖现有文件,而不是进入“jre7”根文件夹。另请注意,您必须使用与您的 JRE 匹配的正确文件——Java 7 策略文件可能在 Java 6 中不起作用,反之亦然。

另请参阅此问题:部署应用程序时如何避免安装“无限强度”JCE 策略文件?

于 2013-09-12T16:48:44.830 回答