位置:- 正文

AES(ECB/CBC) JS实现加密解密(aes-ecb和aes-gcm)

编辑:rootadmin
AES(ECB/CBC) JS实现加密解密

推荐整理分享AES(ECB/CBC) JS实现加密解密(aes-ecb和aes-gcm),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:aes csdn,aes_ecb_encrypt,aes的ecb模式,aes-ecb和aes-gcm,aes代码实现,aes/cbc/nopadding java,aes/cbc/nopadding java,aes/cbc/nopadding java,内容如对您有帮助,希望把文章链接给更多的朋友!

https://github.com/sytelus/CryptoJS

其中 CryptoJS 使用的谷歌开源 https://code.google.com/p/crypto-js/ 

AES(ECB/CBC) JS实现加密解密(aes-ecb和aes-gcm)

https://code.google.com/archive/p/crypto-js/downloads

AES对称加密,比DES安全性高。 AES分为ECB和CBC两种方式。 CBC模式比ECB模式安全。 ECB模式比CBC模式快。

CBC加密解密方式

下载完成后在页面中引入 rollups/aes.js components/pad-zeropadding.js

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>aes</title> <script src="aes.js"></script> <script src="pad-zeropadding.js"></script></head><body><script type="text/javascript"> CBC(); function CBC() { var key = "0000000671595991"; var iv = "tdrdadq59tbss5n7"; var pazzword = '123456'; console.log('pazzword:' + pazzword); // aes 加密 pazzword = encrypt(pazzword, key, iv); console.log('加密后:' + pazzword); if (pazzword.length == 24) { pazzword = decrypt(pazzword, key, iv); console.log('解密后:' + pazzword); } } // 加密 function encrypt(data, key, iv) { //key,iv:16位的字符串 var key1 = CryptoJS.enc.Latin1.parse(key); var iv1 = CryptoJS.enc.Latin1.parse(iv); return CryptoJS.AES.encrypt(data, key1, { iv: iv1, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }).toString(); } // 解密 function decrypt(data, key, iv) { //key,iv:16位的字符串 var key1 = CryptoJS.enc.Latin1.parse(key); var iv1 = CryptoJS.enc.Latin1.parse(iv); var decrypted = CryptoJS.AES.decrypt(data, key1, { iv: iv1, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.ZeroPadding }); return decrypted.toString(CryptoJS.enc.Utf8); }</script></body></html>ECB加密解密方式

下载完成后在页面中引入 rollups/aes.js components/mode-ecb.js components/pad-zeropadding.js

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>aes</title> <script src="aes.js"></script> <script src="mode-ecb.js"></script> <script src="pad-zeropadding.js"></script></head><body><script type="text/javascript"> ECB(); function ECB() { var key = "0000000671595991"; var iv = "tdrdadq59tbss5n7"; var pazzword = '123456'; console.log('pazzword:' + pazzword); // aes 加密 pazzword = encrypt(pazzword, key, iv); console.log('加密后:' + pazzword); if (pazzword.length == 24) { pazzword = decrypt(pazzword, key, iv); console.log('解密后:' + pazzword); } } // 加密 function encrypt(data, key, iv) { //key,iv:16位的字符串 var key1 = CryptoJS.enc.Latin1.parse(key); var iv1 = CryptoJS.enc.Latin1.parse(iv); return CryptoJS.AES.encrypt(data, key1, { iv: iv1, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.ZeroPadding }).toString(); } // 解密 function decrypt(data, key, iv) { //key,iv:16位的字符串 var key1 = CryptoJS.enc.Latin1.parse(key); var iv1 = CryptoJS.enc.Latin1.parse(iv); var decrypted = CryptoJS.AES.decrypt(data, key1, { iv: iv1, mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.ZeroPadding }); return decrypted.toString(CryptoJS.enc.Utf8); }</script></body></html>Java实现方式

AES对称加密_小百菜的博客-CSDN博客

注意修改代码中的填充方式:

AES/CBC/PKCS5Padding 改为 AES/CBC/NoPaddingAES/ECB/PKCS5Padding 改为 AES/ECB/NoPadding在线测试

在线测试http://tool.chacuo.net/cryptaes

本文链接地址:https://www.jiuchutong.com/zhishi/290829.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/290830.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络