前端加密、解密数据

发布于:2024-03-19 ⋅ 阅读:(63) ⋅ 点赞:(0)

前端加密、解密数据

  1. 安装依赖
npm install crypto-js --save-dev
  1. utils 公共方法
const CryptoJS = require('crypto-js');
const mode = CryptoJS.mode.ECB
const padding = CryptoJS.pad.NoPadding

let key1 = 'oneparksoneparks'; // 其他目前aes
let key2 = 'fasdfadsfrwebjvzmhfgcurutrvzxcn'; //登录des
let iv = '';

//DES  ECB模式加密  utf8 to base64
export function encryptByDES  (message)  {
  var ivHex = CryptoJS.enc.Utf8.parse(iv);
  const keyHex = CryptoJS.enc.Utf8.parse(key2);
  const encrypted = CryptoJS.DES.encrypt(message, keyHex, {
    iv: ivHex,
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
};

// AES加密
export function encryptByAES  (message)  {
  const keyHex = CryptoJS.enc.Utf8.parse(key1);
  const encrypted = CryptoJS.AES.encrypt(message, keyHex, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return encrypted.ciphertext.toString(CryptoJS.enc.Base64);
};

// AES  ECB模式解密
export function decryptByAES  (ciphertext)  {
  const keys = CryptoJS.enc.Utf8.parse(key1);
  const decrypt = CryptoJS.AES.decrypt(ciphertext, keys, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return CryptoJS.enc.Utf8.stringify(decrypt).toString();
};

// DES ECB模式解密
export function decryptByDES  (ciphertext) {
  const keys = CryptoJS.enc.Utf8.parse(key2);
  const decrypt = CryptoJS.DES.decrypt(ciphertext, keys, {
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7
  });
  return CryptoJS.enc.Utf8.stringify(decrypt).toString();
};

// AES模式解密
export function formatTime (date) {
  const year = date.getFullYear();
  const month = date.getMonth() + 1;
  const day = date.getDate();
  const hour = date.getHours();
  const minute = date.getMinutes();
  const second = date.getSeconds();
  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':');
}

export function formatNumber (n) {
  n = n.toString();
  return n[1] ? n : '0' + n;
}

export function getQueryParam (str, name) {
  let search;
  if (str.indexOf('?') === -1) {
    return null;
  } else {
    search = str.split('?')[1];
  }
  let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
  let r = search.match(reg);
  if (r != null) return decodeURI(r[2]);
  return null;
}


提供几个在线加密解密地址

MD5在线加密解密:https://www.sojson.com/md5/

AES在线加密解密 : https://www.mklab.cn/utils/aes

本文含有隐藏内容,请 开通VIP 后查看