gpt4 book ai didi

java - 非法 key 大小已安装 Jvm 8 但项目源/二进制文件是 jdk7

转载 作者:行者123 更新时间:2023-11-30 08:30:04 24 4
gpt4 key购买 nike

我正尝试在 Java 上解密,这是一个使用 CryptoJS AES 在 JavaScript 上加密的字符串,如本 post 中所述。 .

但我陷入了僵局,我已经安装了 Unlimited Strength Jurisdiction Policy正如对此 post 所解释的那样,您只需替换 $javahome/jre/lib/security 中已有的 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 重新启动,但我仍然遇到非法 key 大小异常。

该项目是在NetBeans上运行的,并且使用Tomcat运行,唯一困扰我的是该项目的源/二进制文件是JDK 7,我不知道这是否可能是异常的原因还是不是。

如果是这样,我怎么知道我必须替换哪些 JCE 文件?我不能移动源代码/二进制文件,我的意思是,我可以,但我不能在生产环境中这样做,它必须按原样工作。

如果不是这个原因,我该如何解决这个问题?

最佳答案

您可以使用以下代码片段来帮助调试问题:

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 运行环境的信息。您还可以从终端运行以下命令,以确保在编辑 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 - 非法 key 大小已安装 Jvm 8 但项目源/二进制文件是 jdk7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41473233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com