当前位置: 代码网 > it编程>前端脚本>Vue.js > vue项目base64加解密使用方式以及解密乱码

vue项目base64加解密使用方式以及解密乱码

2024年06月12日 Vue.js 我要评论
vue项目base64加解密及解密乱码一、vue项目使用base64加解密1.安装 base64插件:npm i js-base64 --save2.页面中引入:有两种方式:(1) import {b

vue项目base64加解密及解密乱码

一、vue项目使用base64加解密

1.安装 base64插件:

npm i js-base64 --save

2.页面中引入:

有两种方式:

  • (1) import {base64} from ‘js-base64’
  • (2) let base64=require(‘js-base64’).base64

3.页面中使用

  • 解密 let a=base64.decode(route.query.token)
  • 加密 base64.encode(password);

二、解密乱码问题

问题:

后端返回的链接的token里带有加号,使用route.query.token获取到的token里 +号会变成空格,导致解密后部分内容变成乱码。

解决方法:

1.链接是后端返回时,需后端处理,将+号编码变成%2b,再返回链接进行跳转即可

2.链接是前端写的话,可直接使用encodeuricomponent()进行编码,将+号变成%2b,再进行跳转即可

使用base64加密、解密以及des加密、解密

base64加密、解密

  • 第一步:
npm  install js-base64 --save  下载依赖
  • 第二步:

直接引入即可

import { base64 } from 'js-base64';
  • 第三步:
base64.encode(xxxx)

其中  

  • .encode() 加密 
  • .decode() 解密

中间不需要使用加密的key等其他字符

des加密、解密

  • 第一步:
npm  install crypto-js --save  下载依赖
  • 第二步:

引入 :

import cryptojs from "crypto-js";
  • 第三步:

封装一下:

function encryptdes(word, keystr, ivstr) {
  keystr = keystr || 'xxxx'
  ivstr = ivstr || 'xxxx'
  let key = cryptojs.enc.utf8.parse(keystr)
  let iv = cryptojs.enc.utf8.parse(ivstr)
  let srcs = cryptojs.enc.utf8.parse(word)
  let encrypted = cryptojs.des.encrypt(srcs, key, {
    iv,
    mode: cryptojs.mode.cbc,
    padding: cryptojs.pad.pkcs7
  })
  return encrypted.tostring()
}
// 解密
function decryptdes(word, keystr, ivstr) {
  try {
    keystr = keystr || 'xxxxx'
    ivstr = ivstr || 'xxxx'
    var key = cryptojs.enc.utf8.parse(keystr)
    let iv = cryptojs.enc.utf8.parse(ivstr)
    var decrypt = cryptojs.des.decrypt({ ciphertext: cryptojs.enc.base64.parse(word) }, key, {
      iv,
      mode: cryptojs.mode.cbc,
      padding: cryptojs.pad.pkcs7
    })
    return decrypt.tostring(cryptojs.enc.utf8)
  } catch (err) {
    return 'false'
  }
}
export { encryptdes, decryptdes };

其中 keystr  ivstr  需要和后端伙伴统一一下的秘钥  

  • 第四步:

在组件中使用   decryptdes(xxxx) 即可

总结

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

(0)

相关文章:

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

发表评论

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