手机版

用JavaScript实现的前端AES加解密功能[基于CryptoJS]

时间:2021-08-30 来源:互联网 编辑:宝哥软件园 浏览:

本文举例说明了用JavaScript实现的前端AES加解密功能。分享给大家参考,如下:

Js前端AES加密

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

这一次,AES用于加密数据,因此客户端和服务器使用相同的密钥。(仅用于演示,建议在正式环境中使用RSA)

首先,准备一个明文密码和用于加密的密钥

var来源=' ABCDEFG ';var aesKey=' 8NONwyJtHesysWpMJS加密填充和模式需要对应服务器,否则无法解密

键是字符串类型,需要在使用前进行处理

注:PKCS5Padding添加与pkcs7填充相同

上一段中显示的加密数据就是加密结果。

JS解密代码

EncryptedData是加密数据,JS直接加密的数据是对象,不能直接解密。只有在转换为Base64字符串后才能解密。服务器应该在Base64之后返回加密数据。

encryptedData=encryptedData .密文. tostring();var encryptedhextr=cryptojs . enc . hex . parse(encryptedData);我们先来看看运行结果:

Aes.js文件可以在这里下载。

完整的测试代码如下:

!DOCTYPE html html lang=' en ' head meta charset=' UTF-8 ' titlewww.jb51.net aes.js/title/headscript src=' http : AES . js '/scriptbodyscript var key=cryptojs . enc . utf8 . parse(' 8 nonwyjtheyswpm ');var plaintText=' ABCDEFGH//明文var加密数据=cryptojs.aes.encrypt(纯文本,密钥,{mode: cryptojs.mode.ecb,padd : crypto js . pad . pkcs7 });Console.log('加密前':PlanetText);Console.log('加密后:' encryptedData ');encryptedData=encryptedData .密文. tostring();var encryptedhextr=cryptojs . enc . hex . parse(encryptedData);var encryptebatese64str=cryptojs . enc . base64 . stringify(encryptedHexStr);var decryptedData=CryptoJS。AES . decrypt(encryptebatese64str,key,{ mode: CryptoJS.mode.ECB,padd : cryptojs . pad . pkcs7 });var decryptedStr=decrypteddata . tostring(cryptojs . enc . utf8);Console.log('解密的: ' DecryptedStr);var pwd=' pcsuftog9/qpqmqXsuCRQ==';//加密数据vardecrypted data=crypto js . AES . decrypt(pwd,key,{mode:cryptojs.mode.ecb,padd : crypto js . pad . pkcs7 });Console.log('服务器返回的解密数据: ' decryptedStr);/script/body/html代码带来了aes.js完整代码,并使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun,你可以得到上面的运行结果。

PS:对加解密感兴趣的朋友也可以参考本网站的在线工具:

在线AES加密/解密工具:http://tools.jb51.net/password/aes_encode

文本在线加解密工具(包括AES、DES、RC4等。)http://tools.jb51.net/password/txt_encode

在线编码转换工具(utf-8/utf-32/punycode/base64):http://tools.jb51.net/transcoding/decode_encode_tool

BASE64编码和解码工具:http://tools.jb51.net/transcoding/base64

在线MD5/哈希/sha-1/sha-2/sha-256/sha-512/sha-3/ripemd-160加密工具:http://tools.jb51.net/password/hash_md5_sha

在线sha1/sha 224/sha 256/sha 384/sha 512加密工具:http://tools.jb51.net/password/sha_encode

有关JavaScript的更多信息,请参见本网站的主题:《JavaScript加密解密技巧汇总》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》和0103010。

希望本文对JavaScript编程有所帮助。

版权声明:用JavaScript实现的前端AES加解密功能[基于CryptoJS]是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。