2017-11-20 32 views
0

これは本当に奇妙なエラーです。 2台のマシンでは、コードは完全に実行されています。私はちょうどこれを新しいマシンに設定しましたが、これは動作しません。スクリプトを実行しているときに次のエラーが表示されます。PBKDF2WithHmacSHA512 SecretKeyFactoryが利用できません

java.lang.RuntimeException: java.security.NoSuchAlgorithmException: PBKDF2WithHmacSHA512 SecretKeyFactory not available 

エラーの原因となっているコード行は次のとおりです。 JDK 1.7.0

コードがすべて正しくコンパイルさを使用して

SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA512"); 

、それだけでこの行に、実行時に失敗しています。これは、JARファイルの違いやJDKの若干の違いに関連していますが、異なるマシン間のすべてをチェックした後、すべてが同じように見えます。

思考?

答えて

3

PBKDF2WithHmacSHA512のサポートがJava 8で追加されました。デフォルトではJava 7では使用できません(Java 7自体はPBKDF2WithHmacSHA1のみをサポートしています)。

は比較:PKCS#5 v2.0ので見つかったパスワードベースのキー派生機能を使用してJava 7

PBKDF2WithHmacSHA1構築秘密鍵の

だから、あなたはどちらかPBKDF2WithHmacSHA1へのJava 8、またはダウングレードへのアップグレード、または(例えば、弾む城)は、Java 7のためPBKDF2WithHmacSHA512を提供JCEプロバイダが存在するかどうかを確認する必要があります。

Java 7の別のマシンでコードが正常に実行されている場合は、そのJavaインストールのlib/extに追加ライブラリが含まれているかどうかを確認します。たとえば、Bounce CastleにはPBKDF2WithHmacSHA512をサポートするJCEプロバイダがあります。その場合は、同じライブラリを他のマシンのJavaインストールに含める必要があります。

+0

Java 8へのアップグレードのように見えるのは、後ではなく早く実行されるようです。これは間違いなくJava 8で動作するマシン間でこれをデバッグするのは意味がありません。 –

関連する問題