当前位置:   article > 正文

前端axios封装请求拦截器中给参数加密,响应拦截器添加解密。。js库 CryptoJS使用(详细)_axios get请求的object参数 加密

axios get请求的object参数 加密

与后端接口进行加密传参,接收参数。。。前端信息安全处理

为什么要编码?

由于一些网络通讯协议的限制, 又或者是出于信息加密的目的, 我们就需要将原信息转换为base64编码,然后才能进行传输.例如,发送某些含有 ASCII 码表中0到31之间的控制字符的数据。

window.btoa 对字符串进行 base64编码(注意不能编码中文);
winodw.atob 对 base64字符串 进行解码(对于包含中文的 base64编码,不能正确解码);

AES 加密 —安装:

npm install crypto-js
  • 1
例子使用:
aes加密: crypto.js
  • 1
 import CryptoJS from "crypto-js";
 let CryptoJSKey = '0fHBHGFCRFFG1e25se' //16位自定义的,要与后端一起配置
 const key = CryptoJS.enc.Utf8.parse(CryptoJSKey); 
 const iv = CryptoJS.enc.Utf8.parse(CryptoJSKey);
 //AES加密传参 (封装)
 Encrypt(word) {
   
    let srcs = CryptoJS.enc.Utf8.parse(word);//需要加密的内容
   // let encrypted = CryptoJS.AES.encrypt(srcs, key, {
   
  //   iv: iv,
  //   mode: CryptoJS.mode.CBC,
  //   padding: CryptoJS.pad.Pkcs7
  // });
    
    if (typeof word == "string") {
   
      const srcs = CryptoJS.enc.Utf8.parse(word);
      encrypted = CryptoJS.AES.encrypt(srcs, key, {
   
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
    } else if (typeof word == "object") {
   
      //对象格式的转成json字符串
      const data = JSON.stringify(word);
      const srcs = CryptoJS.enc.Utf8.parse(data);
      encrypted = CryptoJS.AES.encrypt(srcs, key, {
   
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      });
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/815108
推荐阅读
相关标签
  

闽ICP备14008679号