vue AES加密(URLEncode加密)

目录

第一步:安装crypto-js

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

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

第四步:AES加密+URLEncode加密

第五步:AES解密+URLEncode解密


第一步:安装crypto-js

//安装
npm install crypto-js --save-dev

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

import CryptoJS from 'crypto-js';
 
export default {
    //随机生成指定数量的16进制key
    generatekey(num) {
        let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        let key = "ABCDEF0123456789";
        for (var i = 0; i < num; i++) {
            let randomPoz = Math.floor(Math.random() * library.length);
            key += library.substring(randomPoz, randomPoz + 1);
        }
        return key;
    },
    
    //加密
    encrypt(word, keyStr) {
        keyStr = keyStr ? keyStr : 'ABCDEF0123456789'; //判断是否存在ksy,不存在就用定义好的key
        var key = CryptoJS.enc.Utf8.parse(keyStr);
        var srcs = CryptoJS.enc.Utf8.parse(word);
        var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
        return encrypted.toString();
    },
    //解密
    decrypt(word, keyStr) {
        keyStr = keyStr ? keyStr : 'ABCDEF0123456789';
        var key = CryptoJS.enc.Utf8.parse(keyStr);
        var decrypt = CryptoJS.AES.decrypt(word, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
        return CryptoJS.enc.Utf8.stringify(decrypt).toString();
    }
 
}

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

import AES from "../tools/crypto";

第四步:AES加密+URLEncode加密

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

第五步:AES解密+URLEncode解密

   //URL地址:http://www.baidu.comkdParam=t8AAHi7%2B1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ%3D
      /* 
      第一步:获取url路径
       */ 
      let query = this.$route.query.kdParam;
     /* 
     第二步:对AES参数进行URLEncode解密:
      */
      let data = decodeURIComponent(query);
      console.log(data);//t8AAHi7+1sZSqpgWvxymARPpClXIshZCPcYBfMzugeQ= 
      /* 
      第三步:AES解密
      */
      var dess = AES.decrypt(data);
      console.log(dess);//idcard=11111111&name=测试
      /* 
     第四步: 解构参数的值 
      */
      var keyValue = dess.split("&");
      console.log(keyValue);//['idcard=11111111', 'name=测试']
      var obj = {};
      for (var i = 0; i < keyValue.length; i++) {
        var item = keyValue[i].split("=");
        var key = item[0];
        var value = item[1];
        obj[key] = value;
      }
      console.log(obj);//{idcard: '11111111', name: '测试'}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中实现AES数据加密,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了crypto库。 2. 在Vue组件中,引入crypto库并导入Crypto对象。 3. 创建一个方法,比如encryptAES,用于进行AES加密。 4. 在encryptAES方法中,使用Crypto对象调用encrypt方法对数据进行加密加密的方式可以选择AES-CBC模式。 5. 在调用encrypt方法时,传入需要加密的数据和密码作为参数。密码需要先进行AES加密,可以使用Crypto对象的encrypt方法。 6. 在Vue模板中,调用encryptAES方法并传入需要加密的数据。 通过以上步骤,你可以在Vue 3中实现AES数据加密。这样可以增加数据的安全性,并确保前后端使用相同的加密格式进行对比,以实现安全登陆。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vue 使用AES 加密](https://blog.csdn.net/qq_42108937/article/details/125291710)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [如何基于python3和Vue实现AES数据加密](https://download.csdn.net/download/weixin_38647517/12853811)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值