DES加解密(附带解决转义问题)-VUE

定义全局方法

复制代码
main.js

import DESKeys from "./utils/key";
import CryptoJS from "crypto-js";    // npm install crypto-js@4.2.0  

/**
 * 配置全局的加密方法(DES)
 * 参数 plaintext 需要加密的字符串
 */
Vue.prototype.$encruptionDes = function (plaintext) {
  //进行加密
  let DesKey = DESKeys;
  let key = CryptoJS.enc.Utf8.parse(DesKey);
  let encrypted = CryptoJS.DES.encrypt(plaintext, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });

  return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
};

/**
 * 配置全局的解密方法(DES)
 * 参数 ciphertext 需要解密的密文(Base64编码)
 */
Vue.prototype.$decryptionDes = function (ciphertext) {
  let DesKey = DESKeys;
  let key = CryptoJS.enc.Utf8.parse(DesKey);
  let encryptedWordArray = CryptoJS.enc.Base64.parse(ciphertext);
  let cipherParams = CryptoJS.lib.CipherParams.create({
    ciphertext: encryptedWordArray
  });
  let decrypted = CryptoJS.DES.decrypt(cipherParams, key, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7,
  });
  return decrypted.toString(CryptoJS.enc.Utf8);
};

// 定义反转义函数
Vue.prototype.$htmlUnescape = function(str) {
  if (!str) return '';
  const div = document.createElement('div');
  div.innerHTML = str;
  const result = div.textContent || div.innerText || '';
  div.remove(); 
  return result;
};

utils/key.js

let ab = 'CAE';
let bc = 'q2n';
let cd = 'qno';
let de = 'tM=';
let DesKeys = ab + bc + cd + de;

export default DesKeys;

使用方法

复制代码
存取之前进行编码
存:encodeURIComponent(this.bindPassword)
取:let userPassword = decodeURIComponent(this.$decryptionDes(userPassword));

console.log('返回值Des解密解决转义', this.$htmlUnescape(userAccount), 
相关推荐
佳児素花痴╮2 小时前
线程知识点
java·开发语言·jvm
htzyl2062 小时前
前端阶梯——第九章、颜色、文本与背景
前端·css
zhangzeyuaaa2 小时前
Ruby `require` 完全指南:从 `$LOAD_PATH` 到 `require_relative`
服务器·前端·ruby
学掌门2 小时前
老司机带你十分钟入门Python!
开发语言·python
htzyl2062 小时前
前端阶梯——第八章、CSS入门与选择器
前端·css
用户117953654782 小时前
TRAE vs Claude Code 性能对比:从代码生成、多文件重构到底层吞吐,谁更适合你的日常开发?
javascript
猪猪拆迁队2 小时前
跨电脑复制共享-WebRTC 打洞踩坑
前端·后端·go
Amos_Web2 小时前
Rspack 源码解析(十八):Tree Shaking 如何用 SideEffects 重写模块连接
前端·rust·前端框架
百度一下吧2 小时前
前端包管理工具和使用手册
前端
zhangzeyuaaa2 小时前
深入 Ruby:return 退出规则完全指南
开发语言·ruby