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), 
相关推荐
钛态6 小时前
前端安全防线:CSRF 攻击链路与双重 Token 校验的工程实现
前端·vue·react·web
辞旧 lekkk6 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
张拭心7 小时前
技术管理笔记:让我“燃尽”的一天
前端
帅次7 小时前
Kotlin 与 Java 互操作:混合工程里的平台类型与 API 边界
java·开发语言·kotlin·suspend·nullable
不好听6138 小时前
BFF 架构实战:从前端直调 API 到加入中间层
前端·架构
不好听6138 小时前
前端跨域完全指南:从为什么报错到三种解决方案
前端
三8448 小时前
路由策略/控制 配置双点双向路由重发布
服务器·前端·javascript
Qimooidea8 小时前
祁木 CAD Translator 工程图纸出海实战指南
服务器·前端·安全
小林ixn8 小时前
从BFF到SSE:我在Vue项目里藏了个“AI翻译官”
前端·vue.js·vite
dtq04248 小时前
C语言-结构体详解
c语言·开发语言·学习