首页 > 其他分享 >vue des 加密和解密

vue des 加密和解密

时间:2022-11-03 15:02:33浏览次数:79  
标签:vue const des 解密 key var message cryptoJs

先引入:

npm install crypto-js

utils 包底下创建一个 des.js 文件,复制进去就行

// utils/des.js
// des 加密文件
import cryptoJs from "crypto-js";

// 随机生成指定数量的16进制key(该方法非必须,也可自己指定key)
const generatekey = num => {
  let library = "hA630BPv+4lNzf6daueS1Q=="; //24
  let key = "";
  // num 是 generatekey 传进来的参数
  for (var i = 0; i < num; i++) {
    let randomPoz = Math.floor(Math.random() * library.length);
    key += library.substring(randomPoz, randomPoz + 1);
  }
  return key;
};
/*
 * message:需要解密的字符串,
 * key: 密钥(加密解密密钥同一个)
 */
//DES加密
const encryptDes = (message, key = "Xy20221020") => {
  var keyHex = cryptoJs.enc.Utf8.parse(key);
  var option = { mode: cryptoJs.mode.ECB, padding: cryptoJs.pad.Pkcs7 };
  var encrypted = cryptoJs.DES.encrypt(message, keyHex, option);
  // return encrypted.ciphertext.toString(); // 返回hex格式密文,如需返回base64格式:encrypted.toString()
  return encrypted.toString();
};

//DES解密
const decryptDes = (message, key = "Xy20221020") => {
  var keyHex = cryptoJs.enc.Utf8.parse(key);
  var decrypted = cryptoJs.DES.decrypt(
    // {
    //   ciphertext: cryptoJs.enc.Hex.parse(message)
    // }, // 若 message 是 base64 格式,则无需转16进制hex,直接传入 message 即可
    message,
    keyHex,
    {
      mode: cryptoJs.mode.ECB,
      padding: cryptoJs.pad.Pkcs7
    }
  );
  return decrypted.toString(cryptoJs.enc.Utf8);
};

export { generatekey, encryptDes, decryptDes };

vue 文件应用

const key = generatekey(8); // 也可直接指定key let key = 'des';

      //如果是对象/数组的话,需要先JSON.stringify转换成字符串
       const encrypts = encryptDes(JSON.stringify(this.loginForm.loginPwd), key); //加密 //如果是对象/数组的话,需要先JSON.stringify转换成字符串
      //const encrypts = encryptDes(this.loginPwd, key); //加密 //如果是单个字段的话直接通过this去指向就行
      const dess = JSON.parse(decryptDes(encrypts, key)); //解密

      console.log(encrypts, dess);

 

标签:vue,const,des,解密,key,var,message,cryptoJs
From: https://www.cnblogs.com/majiayin/p/16854456.html

相关文章

  • 学习vue3(六)(深入v-model,自定义指令directive,组合式函数(自定义Hooks))
    深入v-modelTIps在Vue3v-model是破坏性更新的v-model在组件里面也是很重要的v-model其实是一个语法糖通过props和emit组合而成的1.默认值的改变prop:value->m......
  • vue中引入高德地图Loca数据可视化
     目录引言:关键词:正文:一、如何安装或者引入:二、如何引入:三、如何使用:四、完整代码:五、效果图 参考:引言:vue中引入高德地图​实例的,详情可以去参考,由于需求增加,地图要做的更......
  • 关于Vue-穿梭框
    选择一个或以上的选项后,点击对应的方向键,可以把选中的选项移动到另一栏。其中,左边一栏为source,右边一栏为target,API的设计也反映了这两个概念。<T......
  • 导航栏下拉列表/vue/scss/html
    效果   scss样式 html 源码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=......
  • WebSocket C#服务器端+VUE客户端
    WebSocketC#服务器端先定义一个基类注:用于和WinSocket融合。当然不用也是可以的clsSocketusingSystem;usingSystem.Collections.Generic;usingSystem.Text;na......
  • vue3新特性的使用
    1、Suspense组件:等待异步组件时渲染一些额外内容,让应用有更好的用户体验例:<template><divclass="app"><h3>我是App组件</h3><......
  • 原理解密 → Spring AOP 实现动态数据源(读写分离),底层原理是什么
    开心一刻女孩睡醒玩手机,收到男孩发来一条信息:我要去跟我喜欢的人表白了!女孩的心猛的一痛,回了条信息:去吧,祝你好运!男孩回了句:但是我没有勇气说不来,怕被打!女孩......
  • vue常见面试题
    vue路由跳转有几种方式vue中router和routr的区别vue路由有那两种模式,这两种模式的区别vue中scoped的原理防抖节流的理解vuex的5个组成部分vue中如何生命全局变量计......
  • 微信小程序watch监听, 类似vue的watch
    Vue.js里有watch监听机制,很适合“一处改变,多处影响”的场景,在开发小程序的过程中,自然也会遇到这样的场景,下面介绍如何在小程序中实现watch监听不好用你来打我!一.新建w......
  • 学习vue3(五)(插槽slot,Teleport传送组件,keep-alive缓存组件,依赖注入Provide / Inject)
    插槽slot插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot>表示,父组件可以在这个占位符中填充任何模板代码,如HTML、组件等,填充的内容会替换子组件的<slot......