正在加载中,请稍后
author 首页 关于 笔记

按回车搜索更多

JavaScript 实现 AES/CBC/PKCS7Padding 数据加密解密
2020-06-10 阅读 {{counts.readCount}} 评论 {{counts.commentCount}}


前言

关于AES加密解密的笔记
之前写过一篇JavaAES PKCS7 实现方法的笔记
地址:
https://leanote.zzzmh.cn/blog/post/5cc2807b16199b7fec00034f

这次再实现一下 JavaScriptAES PKCS7
参考:
https://blog.csdn.net/fei565789229/article/details/87487250



代码

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>AES 测试</title>
  6. </head>
  7. <body>
  8. <label>加密前: </label><input id="data" type="text" placeholder="加密前" style="width: 80%"><br>
  9. <label>加密后: </label><input id="code" type="text" placeholder="加密后" style="width: 80%"><br>
  10. <label>解密后: </label><input id="decode" type="text" placeholder="解密后" style="width: 80%"><br>
  11. <button onclick="test()">test</button>
  12. <script src="https://cdn.staticfile.org/crypto-js/4.0.0/crypto-js.min.js" type="text/javascript"></script>
  13. <script>
  14. // 偏移量
  15. let iv = "0000000000000000";
  16. // 密钥,长度必须为16
  17. let secret_key = "1234567890123456";
  18. function parse(string) {
  19. return CryptoJS.enc.Utf8.parse(string);
  20. }
  21. function encrypt(data){
  22. // Encrypt
  23. return CryptoJS.AES.encrypt(parse(data), parse(secret_key), {
  24. iv: parse(iv),
  25. mode: CryptoJS.mode.CBC,
  26. padding: CryptoJS.pad.Pkcs7
  27. }).toString();
  28. }
  29. function decrypt(code){
  30. return CryptoJS.AES.decrypt(code, parse(secret_key),{
  31. iv: parse(iv),
  32. mode: CryptoJS.mode.CBC,
  33. padding: CryptoJS.pad.Pkcs7
  34. }).toString(CryptoJS.enc.Utf8);
  35. }
  36. function test() {
  37. const data = document.querySelector('#data').value;
  38. const code = encrypt(data);
  39. document.querySelector('#code').value = code;
  40. const decode = decrypt(code);
  41. document.querySelector('#decode').value = decode;
  42. }
  43. </script>
  44. </body>
  45. </html>


END

线上演示:
https://tczmh.gitee.io/aes-test/

效果截图:

Gitee源码:
https://gitee.com/tczmh/aes-test

提交
评论区空空如也,赶紧添加一条评论吧 评论 {{counts.commentCount}}
{{comment.name}} {{comment.os}} {{comment.browser}}
{{dateFormatter(comment.createTime)}}

{{comment.message}}

{{comment.reply.name}} {{comment.reply.os}} {{comment.reply.browser}}
{{dateFormatter(comment.reply.createTime)}}

{{comment.reply.message}}

zzzmh
关于我 留言板

网址导航

{{alert.message}}
留言板 * 站长不经常查看信箱 若有重要事宜联系邮箱 admin@zzzmh.cn 取消 发送