js前端加密java后台解密(对称与非对称)

本文介绍了一种实现方式,即使用JavaScript在前端进行数据加密,然后在Java后端进行解密,以确保AJAX请求数据的安全,避免明文传输。在实际操作中,作者遇到了并克服了一些技术挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因项目需求,需要对ajax的请求不为明文,方法为加密;之前没有搞过,所以遇到了许多坑


方式(AES)
引用方式:
//AES
function aesEncrypt(text,key){
var encryptedData = CryptoJS.AES.encrypt(text, key, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
//iv:iv
});
var encryptedBase64Str = encryptedData.toString();
//var encryptedStr = encryptedData.ciphertext.toString();
return encryptedBase64Str;
}
console.log(param)
var encrypt = aesEncrypt(param,publicKey);
var encryptStr = aesEncrypt(param,publicKey);
console.log(encryptStr)
缺陷:js端拿到密钥后,容易获取到,易破解


方式:RSA
引用方式:
function bodyRSA(text,key) {
setMaxDigits(130);
var key = new RSAKeyPair("10001","",key);
return encryptedString(key, encodeURIComponent(text));
}
var encrypt = new JSEncrypt();
encrypt.setPublicKey(encryptKey);
var encryptStr = encrypt.encrypt(param);
console.log(encryptStr);
缺陷:公钥加密,私钥解密,但加密长度受限(117位经测试)
注:key的前后应该加上




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值