vue项目中使用crypto-js实现加密解密方式

 更新时间:2024年05月16日 11:02:13   作者:A_ugust__  
这篇文章主要介绍了vue项目中使用crypto-js实现加密解密方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

vue使用crypto-js实现加密解密

注意:

crypto-js加密后可自行选择是否转为base64,也需要后端配合加解密方法

npm install crypto-js

uitls新建文件夹screate.js

const CryptoJS = require('crypto-js');  //引用AES源码js    
const key = CryptoJS.enc.Utf8.parse("1234123412ABCDEF");  //十六位十六进制数作为密钥
// const iv = CryptoJS.enc.Utf8.parse('ABCDEF1234123412');   //十六位十六进制数作为密钥偏移量 可用可不用

//加密方法
export function Encrypt(word:any){
  // 法一:加密后转化为base64
  // let srcs = CryptoJS.enc.Utf8.parse(word);
  // let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  // return encrypted.ciphertext.toString();

  // 法二:不转
  let srcs = CryptoJS.enc.Utf8.parse(word);
  let encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  return encrypted.toString();
}

//解密方法
export function Decrypt(word:any){
  // 法一:对应解密
  // let encryptedHexStr = CryptoJS.enc.Hex.parse(word);
  // let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  // let decrypt = CryptoJS.AES.decrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
  // let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
  // return decryptedStr.toString(); 

  // 法二:
  var decrypt = CryptoJS.AES.decrypt(word, key, {mode:CryptoJS.mode.ECB,padding: CryptoJS.pad.Pkcs7});
  return CryptoJS.enc.Utf8.stringify(decrypt).toString();
}

使用

参数是对象的话,加密需要 JSON.stringify(),解密需要JSON.parse()

getData(){
  letparams = {
    "appId": '0000',
    "bizData": {
      "appName": '测试名称',
      "authMode": "0x1113"
    },
    "bizType": 1000
  }
  var aa = Encrypt(JSON.stringify(params))
  console.log(aa, '加密')
  searchHandle('/xxx/xxx/xxx', aa).then(res=>{
    console.log('接口返回',res.data)
    var dd = JSON.parse(Decrypt(aa))
    console.log(dd, '解密')
    if(res.data.code === 0){}
  })
}


使用crypto-js时报错TypeError: Object(...) is not a function

控制台报错

如下:

原因

引入Encrypt时方式错误,少加了{}

正确形式:

import { Encrypt } from "../plugins/encoder";

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • VeeValidate 的使用场景以及配置详解

    VeeValidate 的使用场景以及配置详解

    这篇文章主要介绍了VeeValidate 的使用场景以及配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • vant组件库之tag渐变色不起作用的原因及解决

    vant组件库之tag渐变色不起作用的原因及解决

    这篇文章主要介绍了vant组件库之tag渐变色不起作用的原因及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue二级菜单导航点击选中事件的方法

    vue二级菜单导航点击选中事件的方法

    今天小编就为大家分享一篇vue二级菜单导航点击选中事件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • vue线上部署请求接口报错net::ERR_CONNECTION_REFUSED

    vue线上部署请求接口报错net::ERR_CONNECTION_REFUSED

    vue线上部署请求接口报错net::ERR_CONNECTION_REFUSED问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 浅析vue中的provide / inject 有什么用处

    浅析vue中的provide / inject 有什么用处

    这篇文章主要介绍了vue中的provide / inject 有什么用处,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Vue 2.0中生命周期与钩子函数的一些理解

    Vue 2.0中生命周期与钩子函数的一些理解

    这篇文章主要给大家介绍了关于Vue 2.0中生命周期与钩子函数的相关资料,对大家学习或者使用vue2.0具有一定的参考学习价值,需要的朋友们下面随小编一起来看看吧。
    2017-05-05
  • 完美解决iview 的select下拉框选项错位的问题

    完美解决iview 的select下拉框选项错位的问题

    下面小编就为大家分享一篇完美解决iview 的select下拉框选项错位的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • Vue-cli Eslint在vscode里代码自动格式化的方法

    Vue-cli Eslint在vscode里代码自动格式化的方法

    本篇文章主要介绍了Vue-cli Eslint在vscode里代码自动格式化的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Vue3+El-Plus实现表格行拖拽功能完整代码

    Vue3+El-Plus实现表格行拖拽功能完整代码

    在vue3+elementPlus网站开发中,详细完成el-table表格的鼠标拖拽/拖曳/拖动排序,下面这篇文章主要给大家介绍了关于Vue3+El-Plus实现表格行拖拽功能的相关资料,需要的朋友可以参考下
    2024-05-05
  • Vue.js高效前端开发

    Vue.js高效前端开发

    Vue是构建Web界面的JavaScript库,原称为Vue.js,它可以通过简洁的API来提供高效的数据绑定和灵活的组件系统,本文详细介绍了Vue的使用安装和相关知识,有兴趣的同学可以参考借鉴
    2023-03-03

最新评论