【electron2】electron调用crytojs加密

发布于:2024-04-16 ⋅ 阅读:(31) ⋅ 点赞:(0)

安装

yarn add crypto-js

引入

	const cryptojs = require('crypto-js');

传入字符串的直接加密形式

let aesData = {
  iv: cryptojs.enc.Utf8.parse('xxxx-xxxxx-xxxxx'),
  mode: cryptojs.mode.CBC,
  padding: cryptojs.pad.Pkcs7
}

/**
 * 加密
 */
export const encrypt = ({key, value}: {key: string, value: string}) => {
  const encrypted = cryptojs.AES.encrypt(value, key, aesData)
  // return encrypted.toString(cryptojs.enc.Base64);
  return encrypted.toString()
}

/**
 * 解密
 */
export const decrypt = ({value, key} : {value: string, key: string}) => {
  const encryptedHexStr = cryptojs.enc.Base64.parse(value);
  const srcs = cryptojs.enc.Base64.stringify(encryptedHexStr);
  const decrypt = cryptojs.AES.decrypt(srcs, key, aesData);
  const decryptedStr = decrypt.toString(cryptojs.enc.Utf8);
  return decryptedStr
}

转utf8的加密形式

/**
 * 加密
 */
export const encrypt = ({key, value}: {key: string, value: string}) => {
  let keyStr = CryptoJS.enc.Utf8.parse(key);
  let srcs = CryptoJS.enc.Utf8.parse(value);
  let encrypted = CryptoJS.AES.encrypt(srcs, keyStr, aesData);
  return encrypted.toString();
}

/**
 * 解密
 */
export const decrypt = ({value, key} : {value: string, key: string}) => {
  var keyStr = CryptoJS.enc.Utf8.parse(key);
  var decrypt = CryptoJS.AES.decrypt(value, keyStr, aesData);
  return decrypt.toString(CryptoJS.enc.Utf8);
}

注:在加解密中,我们需要配合后端一起去调整加解密的形式,否则我们前端调整好了,在实际接口调用中并不适用,除非你走了狗屎,查到的加解密使用博客和后端查的是同一个。

参考:
维维ww博客园
AES在线加解密测试
node官网