2017-01-04 9 views
2

あるこのpostに説明したように、私は、Javaの、CryptoJS AESで暗号化されたJavaScriptの上の文字列に解読しようとしています。不正なキーサイズJVM 8がインストールされているが、プロジェクトのソース/バイナリがJDK7

しかし、私はあなただけあなたがすでに$のJAVAHOME/JRE/libに/セキュリティを持っているJCEファイルを交換する必要があり、このpostに説明したように、私はすでにUnlimited Strength Jurisdiction Policyをインストールしている行き詰まり、になってきました。私はsudoのアップデート-代替--config javaの操作を行う場合は

は、私は現在のJVMを取得:

* 2は/ usr/libに/ JVM/javaの-8-オラクル/ JRE/binに/ javaの1081 modoのマニュアルを

私は/ usr/lib/jvm/java-8-oracle/jre/lib/security /のファイルを置き換えます。

私は確かにJavaが再起動するためにコンピュータを再起動し、私はまだ不正なキーサイズの例外が発生しました。

プロジェクトはNetBeans上で実行され、Tomcatで実行されます。唯一のことは、プロジェクトのソース/バイナリがJDK 7であることです。例外かどうか。

それがそうであるならば、どのように私は私が持っているJCEファイルを置き換えるために何を知っているのですか?私はソース/バイナリを動かすことはできません。私は可能ですが、実稼働ではできません。そのまま動作する必要があります。

これが理由でない場合は、この問題をどのように解決すればよいですか?

+0

tomcatを実行しているwhioch javaを確認してください。あなたのデフォルトよりも別のJavaにすることができます。 – kulatamicuda

答えて

2

あなたは、問題をデバッグするために、次のスニペットを使用することができます。

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が実行されている状況についての情報を提供しますTomcatで実行されるJavaコードでこれらのステートメントを置きます。また、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だけでコンピュータを再起動する必要はありません。

+0

素晴らしい、これは本当の道を示した、ありがとう! – Lauro182