私は、(crypto-jsライブラリを使用して)javascriptでメッセージを暗号化し、javaで解読しようとしています。AES javascript encrypt - java decrypt
これはjavascriptのコードです:
var key = CryptoJS.enc.Utf8.parse(aesPassword);
var ive = CryptoJS.enc.Utf8.parse(aesIv);
var encryptedData = CryptoJS.AES.encrypt(dataToEncrypt, key, {mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7, iv: ive});
そして、これはJavaコードです:
final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
final SecretKeySpec key = new SecretKeySpec(aesPassword().getBytes("UTF-8"), "AES");
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(aesIv().getBytes("UTF-8")));
byte[] decrypted = cipher.doFinal(DatatypeConverter.parseBase64Binary(message));
しかし、私はJavaで復号化しようとすると、この例外がスローされます。 javax.crypto.BadPaddingExceptionを:最終ブロックが適切に埋められていない場合
パスワード:6h2faBePVxpgyFSN iv:NKOzRKrmEMKs1kE4暗号化する3210データ: "{トークン:cMGOIrYlJm9lPhPW}"
助けが必要ですか?
事前
あなたは互換性がありますか? – evolutionxbox
はい。他のケースでは、私はjavaで暗号化し、javascriptで解読するとうまくいきます。 – Giamma
あなたのコードは正しいように見えます。あなたの質問とあなたの質問を編集してください。 JavaScriptとJavaを比較するには、キーとIVのバイト配列を16進数でエンコードする必要があります。 –