我使用一些 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
任何帮助将不胜感激。谢谢!