JS中AES采用16位密钥(给定或者从后台获得),加密后的数据是不是16的倍数,是24位的,这样导致我后台不能解析,新人求帮助!!!!

云从天上来 2017-05-09 08:46:20
$.ajax({
url: "aesController/initAesKey",
async:false,
dataType:"text",
success:function(e){
alert(e.length);
var keyStr = 'bbbbbbbbbbbbbbbb';
var key = CryptoJS.enc.Utf8.parse(e);
var key1 = CryptoJS.enc.Utf8.parse(keyStr);
var account = CryptoJS.enc.Utf8.parse(m_account);
alert("到这里了");
var encrypted = CryptoJS.AES.encrypt(account,key1,{mode:CryptoJS.mode.ECB,padding:CryptoJS.pad.Pkcs7});
alert(encrypted.toString().length);

这里无论是ajax请求来的key还是直接写死的16位key1,加密后,得到的数据都是24位,导致后台解密的时候,报错
javax.crypto.IllegalBlockSizeException: Input length must be multiple of 16 when decrypting with padded cipher
...全文
488 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧