非法密钥大小已安装 Jvm 8 但项目 source/binary 是 jdk7
Illegal key size Jvm 8 installed but project source/binary is jdk7
我正尝试在 Java 上解密,JavaScript 上使用 CryptoJS AES 加密的字符串,如 .
中所述
但我陷入了僵局,我已经安装了 Unlimited Strength Jurisdiction Policy as explained on this post,您只需替换 $javahome/jre/lib/security.[=13= 中已有的 JCE 文件即可]
如果我执行 sudo update-alternatives --config java,我会得到当前的 jvm:
* 2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 模式手册
所以我要替换位于 /usr/lib/jvm/java-8-oracle/jre/lib/security/.
的文件
我重新启动了计算机以确保 java 重新启动,但我仍然遇到非法密钥大小异常。
该项目在 NetBeans 上,并以 Tomcat 运行,唯一困扰我的是项目的 source/binary 是 JDK 7,我不知道不知道是不是异常的原因
如果是这样,我怎么知道我必须替换哪些 JCE 文件?我不能移动 source/binary,我的意思是,我可以,但我不能在生产中这样做,它必须按原样工作。
如果不是这个原因,我该如何解决这个问题?
您可以使用以下代码片段来帮助调试问题:
Cipher.getMaxAllowedKeyLength("AES"); // Will return 128 in "limited" mode; Integer.MAX_VALUE in "unlimited"
System.getenv("JAVA_HOME"); // Gets the Java home path as set in the OS environment -- in this case should be /usr/lib/jvm/java-8-oracle/
System.getProperty("java.home"); // Gets the JRE home path -- in this case should be /usr/lib/jvm/java-8-oracle/jre
System.getenv("PATH"); // Gets the current PATH variable from the OS environment
System.getProperty("java.class.path"); // Gets the Java classpath
System.getProperty("java.version"); // Gets the JRE version number of the current JVM
将这些语句放入由 Tomcat 执行的 Java 代码中将为您提供有关 Tomcat 是 运行ning 的上下文的信息。您还可以从终端 运行 执行以下命令,以确保您在编辑 JCE USC 管辖策略文件时使用相同的 JRE。
$ echo $JAVA_HOME # prints the OS' Java home path
$ which java # prints the java executable that is found in the path
修改这些策略后不需要重启电脑,只需要JRE即可。
我正尝试在 Java 上解密,JavaScript 上使用 CryptoJS AES 加密的字符串,如
但我陷入了僵局,我已经安装了 Unlimited Strength Jurisdiction Policy as explained on this post,您只需替换 $javahome/jre/lib/security.[=13= 中已有的 JCE 文件即可]
如果我执行 sudo update-alternatives --config java,我会得到当前的 jvm:
* 2 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 模式手册
所以我要替换位于 /usr/lib/jvm/java-8-oracle/jre/lib/security/.
的文件我重新启动了计算机以确保 java 重新启动,但我仍然遇到非法密钥大小异常。
该项目在 NetBeans 上,并以 Tomcat 运行,唯一困扰我的是项目的 source/binary 是 JDK 7,我不知道不知道是不是异常的原因
如果是这样,我怎么知道我必须替换哪些 JCE 文件?我不能移动 source/binary,我的意思是,我可以,但我不能在生产中这样做,它必须按原样工作。
如果不是这个原因,我该如何解决这个问题?
您可以使用以下代码片段来帮助调试问题:
Cipher.getMaxAllowedKeyLength("AES"); // Will return 128 in "limited" mode; Integer.MAX_VALUE in "unlimited"
System.getenv("JAVA_HOME"); // Gets the Java home path as set in the OS environment -- in this case should be /usr/lib/jvm/java-8-oracle/
System.getProperty("java.home"); // Gets the JRE home path -- in this case should be /usr/lib/jvm/java-8-oracle/jre
System.getenv("PATH"); // Gets the current PATH variable from the OS environment
System.getProperty("java.class.path"); // Gets the Java classpath
System.getProperty("java.version"); // Gets the JRE version number of the current JVM
将这些语句放入由 Tomcat 执行的 Java 代码中将为您提供有关 Tomcat 是 运行ning 的上下文的信息。您还可以从终端 运行 执行以下命令,以确保您在编辑 JCE USC 管辖策略文件时使用相同的 JRE。
$ echo $JAVA_HOME # prints the OS' Java home path
$ which java # prints the java executable that is found in the path
修改这些策略后不需要重启电脑,只需要JRE即可。