前端js使用crypto-js进行aes解密,解密内容为空
var key = '6f4ff1fc2b53b9ee'
var iv = 'jskey_1618823712'
var str = 'ubgW0ZKHPho5zjE1VMsEGg=='
getDAesString(k,i,str) {
var key = CryptoJS.enc.Utf8.parse(k); // 秘钥
var iv = CryptoJS.enc.Utf8.parse(i); //向量iv
var decrypted = CryptoJS.AES.decrypt(str , key, {
iv:iv,
mode:CryptoJS.mode.CBC,
padding:CryptoJS.pad.Pkcs7
});
return decrypted.toString(CryptoJS.enc.Utf8);
},
this.getDAesString(key,iv,str)
使用crypto-js进行aes解密,解密内容总是为空,找了好几篇文章,看大家都是这么写的,是我哪里写错了吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你首先要确定这段base64是一个aes加密的字符串, 其次, 你要把原数据发出来。要不然,天知道错在哪。
把原始数据用这个密钥和iv用aes cbc加密一次, 对比这个base64看看。
给你个例子,Node.js 15 亲测通过
至于你遇到的问题,需要从几个方面去分析
key
和iv
是不是跟加密时用的完全相同?key
和iv
在加密的时候是不是也是用的CryptoJS.enc.Utf8.parse()
mode
是不是也是CryptoJS.mode.CBC
padding
是不是同样的CryptoJS.pad.Pkcs7
str
是不是通过加密结果的ciphertext
属性编码的结果