2017-10-12 19 views
0

次のコードを実行する:BadPaddingExceptionローディングP12キーストア

KeyStore ks = KeyStore.getInstance(storeType); 
    ks.load(new FileInputStream(keyStore), storePassword.toCharArray()); 

    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); 
    kmf.init(ks, keyPassword.toCharArray()); 

私は例外を取得:

java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. 
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. 

これは、キーツールを使用してPKCS12キーストアに変換JKSキーストアから元々ありました。私は新しい新しいPKCS12キーストアを作成しようとしましたが、運はありません。

答えて

0

JKSは、ストア用とキー用の2つのパスワードの使用をサポートしています。 PKCS12はありません。 keytoolを使用すると、これに関する警告が表示されます。

新しいキーストアに移行する場合、古いキーパスワード(この場合は同じではありません)を引き続き使用する可能性があります。

Java 9では、復号化中に不正なキーが原因で発生する可能性があることを示す、より良い例外メッセージが表示されます。

この場合、店舗パスワードと一致するキーパスワードを必ず入力してください。