javascript中的字符串加密和java中的解密

javascript中的字符串加密和java中的解密,java,javascript,encryption,Java,Javascript,Encryption,我的要求是,我们需要在java脚本中加密密码字符串,并且应该在java中解密。对于这个要求,我使用下面的代码。但我得到的错误是 javax.crypto.BadPaddingException:填充块已损坏 位于org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(未知来源) 位于javax.crypto.Cipher.doFinal(Cipher.java:2087) 我的代码片段是 java脚本代码: var encryp

我的要求是,我们需要在java脚本中加密密码字符串,并且应该在java中解密。对于这个要求,我使用下面的代码。但我得到的错误是

javax.crypto.BadPaddingException:填充块已损坏 位于org.bouncycastle.jce.provider.JCEBlockCipher.engineDoFinal(未知来源) 位于javax.crypto.Cipher.doFinal(Cipher.java:2087)

我的代码片段是

java脚本代码:

   var encryptedPassword = CryptoJS.AES.encrypt(password, key, {

    });
Java代码是

        Cipher c = Cipher.getInstance("AES/ECB/PKCS7Padding");
        c.init(Cipher.DECRYPT_MODE, key);
        byte[] decordedValue = BASE64DecoderStream.decode(encryptedData.getBytes());
        byte[] decValue = c.doFinal(decordedValue);
        decryptedValue = new String(decValue); 
这里的密钥是用Java生成的

有人能帮我解决这个问题吗

或者,如果你有任何工作的例子,请提供给我一次


提前感谢。

根据我的观察,模式和填充不一样。 我没有测试过这个,但请尝试一下

关于javascript

<script>
    var blockAndPadding = { mode: CryptoJS.mode.CBC , padding: CryptoJS.pad.NoPadding};
    var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase", blockAndPadding);
</script>

var blockAndPadding={mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.NoPadding};
var encrypted=CryptoJS.AES.encrypt(“消息”、“秘密密码短语”、blockAndPadding);
在java端,将方法参数更改为以下内容


Cipher c=Cipher.getInstance(“AES/CBC/NoPadding”)

感谢您的快速响应。感谢您的快速响应。我已经在我的jsp中包含了下面的js