CryptoJS和Java进行加解密

Posted blueskyblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CryptoJS和Java进行加解密相关的知识,希望对你有一定的参考价值。

使用AES加密算法时CryptoJS无法对Java的十六进制的AES的字符串的密文进行解密的问题。

在使用CryptoJS进行前后端加密时。使用CryptoJS对java的16进制的aes的字符串密文进行解密遇到无法进行解密。在测试过程中我对同一个消息进行加密,获得了同样的密文。在这种情况下CryptoJS不能Java进行解密时不可能的。在思考了几分钟,我对CryptoJS加解密对象进行查看它们的原型。它们都属于object,在仔细查看中,发现他们的属性和使用CryptoJS.enc.Hex.parse()进行包装的对象一样。我对java的密文使用CryptoJS.enc.Hex.parse()进行包装,得到的对象传入到process(encryptor);中,正确获得加密后的明文。

 1 var key = CryptoJS.enc.Hex.parse("fe4c2807af7c26924af5e0dae82c2209");
 2 var iv = CryptoJS.enc.Hex.parse("d67038555ecb505db3b9d06852da2641");
 3 var aesDecryptor = CryptoJS.algo.AES.createDecryptor(key, {
 4     iv: iv,
 5     mode: CryptoJS.mode.CBC,
 6     padding: CryptoJS.pad.Pkcs7
 7 });
 8 var aesEncode = CryptoJS.enc.Hex.parse("e8a282ac9cbd9d2614f91f20c4e9b598");
 9 aesDecryptor.process(aesEncode);
10 var aesDecode = aesDecryptor.finalize();
11 console.log(aesDecode.toString(CryptoJS.enc.Utf8))

 

以上是关于CryptoJS和Java进行加解密的主要内容,如果未能解决你的问题,请参考以下文章

CryptoJS与C#AES加解密互转

功能强大的JS加密库-CryptoJS

使用CryptoSwift和CryptoJS进行AES加密

无法使用 CryptoJS 解密(适用于 Java、Python)

有关使用CryptoJS的AES方法进行加密和解密,后台获取前端生成的公钥进行AES加密。前端js如何使用私钥解密

为什么 CryptoJS DES 加密的结果和 Java DES 不一样?(转)