jquery java aes_加密在jQuery的JSP和解密采用AES

这篇博客探讨了如何在JSP中使用AES加密JSON数据,并在jQuery中进行解密。作者分享了JSP的加密代码,以及jQuery中使用CryptoJS库解密的步骤。在解密过程中遇到了‘畸形的UTF-8数据’异常,寻求帮助解决该问题。
摘要由CSDN通过智能技术生成

我想在JSP加密和jQuery的解密,我做了下面的代码在JSP加密在jQuery的JSP和解密采用AES

String myKey = "dfslkskfs";

MessageDigest sha = null;

key = myKey.getBytes("UTF-8");

sha = MessageDigest.getInstance("SHA-1");

key = sha.digest(key);

key = Arrays.copyOf(key, 16); // use only first 128 bit

secretKey = new SecretKeySpec(key, "AES");

Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, secretKey);

byte[] bytesEncoded = Base64.encodeBase64(cipher.doFinal(json

.getBytes("UTF-8")));

jsontext = new String(bytesEncoded);

HTML标签: -

/>

/>

jQuery代码

我用空两个js文件进行解密 aes.js,模式-ECB-min.js

jsonString = $("#jsonid").val();

secretKey = $("#secretKey").val();

jsonString = escapeStr(jsonString);

var key = CryptoJS.enc.Base64.parse(secretKey);

var decryptedData = CryptoJS.AES.decrypt(jsonString, key, {

mode: CryptoJS.mode.ECB,

padding: CryptoJS.pad.Pkcs7

});

var decryptedText = decryptedData.toString(CryptoJS.enc.Utf8);

alert(decryptedText);

如果我运行上面的代码,我得到异常“未捕获的错误:畸形的UTF-8数据”,所以请告诉我我错了什么地方,或者你可以告诉我任何其他的方式。

+0

请花时间正确格式化您的代码。 –

+0

'escapeStr'还将Base64解码为CryptoJS的本机格式吗? –

+0

这看起来像是混淆。如果你通过SSL/TLS服务你的页面,那么你不需要加密,如果你不这样做,那么明文可以被恢复,因为你正在发送密钥。此外,由于ECB在语义上不安全,ECB是一个坏主意。您应该使用像GCM一样的身份验证模式,或者使用具有HMAC的CBC。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值