vue AES加密(超详细)

2021-5-27    前端达人

第一步:


  1. //安装
  2. npm install crypto-js --save-dev

第二步:在src目录下新建个放公用js文件夹(common),再建一个AES.js文件,例如:

第三步:在AES.js中填写如下代码,key密钥长度则可以是128,192或256位(默认情况下是128位),正常情况下固定16位数即可

 
  1. import CryptoJS from 'crypto-js';
  2. export default {
  3. //随机生成指定数量的16进制key
  4. generatekey(num) {
  5. let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  6. let key = "";
  7. for (var i = 0; i < num; i++) {
  8. let randomPoz = Math.floor(Math.random() * library.length);
  9. key += library.substring(randomPoz, randomPoz + 1);
  10. }
  11. return key;
  12. },
  13. //加密
  14. encrypt(word, keyStr) {
  15. keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345'; //判断是否存在ksy,不存在就用定义好的key
  16. var key = CryptoJS.enc.Utf8.parse(keyStr);
  17. var srcs = CryptoJS.enc.Utf8.parse(word);
  18. var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  19. return encrypted.toString();
  20. },
  21. //解密
  22. decrypt(word, keyStr) {
  23. keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345';
  24. var key = CryptoJS.enc.Utf8.parse(keyStr);
  25. var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  26. return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  27. }
  28. }

第四步:在需要的地方引入

import AES from "@/common/AES.js";

第五步:调用

 
  1. // var keys = AES.generatekey(16);
  2. //如果是对象/数组的话,需要先JSON.stringify转换成字符串
  3. // 不传key值,就默认使用上述定义好的key值
  4. var encrypts = AES.encrypt(JSON.stringify(cars));
  5. var dess = JSON.parse(AES.decrypt(encrypts));
  6. // var encrypts = AES.encrypt('1234asdasd');
  7. // var dess = AES.decrypt(encrypts);
  8. console.log(encrypts)
  9. console.log(encrypts.length)
  10. console.log(dess)

 

 

特别提示:当解密的时候是为空的时候(也没有报错),那么就一定是你的key长度不符合规范, 可以调整为key长度为16位。

 


蓝蓝设计建立了UI设计分享群,每天会分享国内外的一些优秀设计,如果有兴趣的话,可以进入一起成长学习,请扫码蓝小助,报下信息,蓝小助会请您入群。欢迎您加入噢~~希望得到建议咨询、商务合作,也请与我们联系。

截屏2021-05-13 上午11.41.03.png


文章来源:csdn   

分享此文一切功德,皆悉回向给文章原作者及众读者.

免责声明:蓝蓝设计尊重原作者,文章的版权归原作者。如涉及版权问题,请及时与我们取得联系,我们立即更正或删除。

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计 、 cs界面设计 、 ipad界面设计 、 包装设计 、 图标定制 、 用户体验 、交互设计、 网站建设 平面设计服务



日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档