当前位置: 代码网 > it编程>前端脚本>Vue.js > vue项目中使用crypto-js实现加密解密方式

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

2024年06月12日 Vue.js 我要评论
vue使用crypto-js实现加密解密注意:crypto-js加密后可自行选择是否转为base64,也需要后端配合加解密方法npm install crypto-jsuitls新建文件夹screat

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";

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com