当前位置:   article > 正文

vue AES加密(URLEncode加密)

vue aes

目录

第一步:安装crypto-js

第二步:新建一个crypto.js文件

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

第四步:AES加密+URLEncode加密

第五步:AES解密+URLEncode解密


第一步:安装crypto-js

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

第二步:新建一个crypto.js文件

  1. import CryptoJS from 'crypto-js';
  2. export default {
  3. //随机生成指定数量的16进制key
  4. generatekey(num) {
  5. let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  6. let key = "ABCDEF0123456789";
  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 : 'ABCDEF0123456789'; //判断是否存在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 : 'ABCDEF0123456789';
  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 "../tools/crypto";

第四步:AES加密+URLEncode加密

  1. //链接参数为:http://www.baidu.com?idcard=11111111&name=测试&aa=11
  2. /*
  3. 第一步:开始加密以下字符串:idcard=11111111&name=测试
  4. */
  5. let str = "idcard=11111111&name=测试";
  6. var encrypts = AES.encrypt(str);
  7. // var encrypts = AES.encrypt(JSON.stringify(str));//json字符串
  8. console.log(encrypts);//AES(ECB)加密后:t8AAHi7+1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ=
  9. /*
  10. 第二步:对AES(ECB)加密后参数进行URLEncode:
  11. */
  12. let data= encodeURIComponent(encrypts)
  13. console.log(data);//t8AAHi7%2B1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ%3D
  14. /*
  15. 第三步:完整的url为:http://www.baidu.com?kdParam=t8AAHi7%2B1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ%3D
  16. */

第五步:AES解密+URLEncode解密

  1. //URL地址:http://www.baidu.comkdParam=t8AAHi7%2B1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ%3D
  2. /*
  3. 第一步:获取url路径
  4. */
  5. let query = this.$route.query.kdParam;
  6. /*
  7. 第二步:对AES参数进行URLEncode解密:
  8. */
  9. let data = decodeURIComponent(query);
  10. console.log(data);//t8AAHi7+1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ=
  11. /*
  12. 第三步:AES解密
  13. */
  14. var dess = AES.decrypt(data);
  15. console.log(dess);//idcard=11111111&name=测试
  16. /*
  17. 第四步: 解构参数的值
  18. */
  19. var keyValue = dess.split("&");
  20. console.log(keyValue);//['idcard=11111111', 'name=测试']
  21. var obj = {};
  22. for (var i = 0; i < keyValue.length; i++) {
  23. var item = keyValue[i].split("=");
  24. var key = item[0];
  25. var value = item[1];
  26. obj[key] = value;
  27. }
  28. console.log(obj);//{idcard: '11111111', name: '测试'}

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号