JavaScript怎么实现的前端AES加密解密功能

  介绍

这篇文章将为大家详细讲解有关JavaScript怎么实现的前端AES加密解密功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强> js前端AES加密

最近由于项目需求做了一次MITM,突然即使发现使用HTTPS,也不能保证数据传输过程中的安全性。通过中间人攻击,可以直接获取到Http协议的所有内容。于是开始尝试做一些简单的加密,在一定程度上保证安全性。

本次采用AES加密数据,所以客户端和服务端使用的相同秘钥。(仅作为演示,正式环境推荐使用RSA)

首先准备一份明文密码和加密使用的关键

var  source =,“ABCDEFG";   var  aesKey =,“8 nonwyjthesyswpm"

JS加密填充和模式需要与服务端相对应,否则无法解密

为关键字符串类型,需要处理完再使用

注:PKCS5Padding和PKCS7Padding是一样的

上段所示的encryptedData即为加密后的结果。

<强> JS解密代码

encryptedData为加密后的数据,
直接通过JS加密后的数据是一个对象,无法直接解密的,需要转换为Base64的字符串后才可解密
服务端应当返回Base64之后的加密数据

encryptedData =, encryptedData.ciphertext.toString ();   var  encryptedHexStr =, CryptoJS.enc.Hex.parse (encryptedData);

先来看看运行结果:

,  JavaScript怎么实现的前端AES加密解密功能

AES。js文件可点击此处<强>本站下载

<强>完整测试代码如下:

& lt; ! DOCTYPE  html>   & lt; html  lang=癳n"祝辞   & lt; head>   & lt;才能meta  charset=癠TF-8"比;   & lt;才能title> www.jb51.net  aes.js   & lt;/head>   & lt; https://www.yisu.com/zixun/script  src=" aes.js ">   <身体>   <>脚本   var关键=CryptoJS.enc.Utf8.parse (“8 nonwyjthesyswpm”);   var plaintText=癆BCDEFGH”;//明文   var encryptedData=CryptoJS.AES。加密(plaintText键,{   模式:CryptoJS.mode.ECB,   填充:CryptoJS.pad.Pkcs7   });   console.log(“加密前:“+ plaintText);   console.log(“加密后:“+ encryptedData);   encryptedData=encryptedData.ciphertext.toString ();   var encryptedHexStr=CryptoJS.enc.Hex.parse (encryptedData);   var encryptedBase64Str=CryptoJS.enc.Base64.stringify (encryptedHexStr);   var decryptedData=CryptoJS.AES.decrypt (encryptedBase64Str键,{   模式:CryptoJS.mode.ECB,   填充:CryptoJS.pad.Pkcs7   });   var decryptedStr=decryptedData.toString (CryptoJS.enc.Utf8);   console.log(“解密后:“+ decryptedStr);   var pwd=癙CsUFtgog9/qpqmqXsuCRQ==?//加密服务端返回的数据   var decryptedData=CryptoJS.AES.decrypt (pwd,钥匙,{   模式:CryptoJS.mode.ECB,   填充:CryptoJS.pad.Pkcs7   });   console.log(“解密服务端返回的数据:“+ decryptedStr);>   

关于“JavaScript怎么实现的前端AES加密解密功能”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

JavaScript怎么实现的前端AES加密解密功能