【electron2】electron调用crytojs加密

安装

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官网

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Electron 是一个基于 Chromium 和 Node.js 的桌面应用程序开发框架,可以用 HTML、CSS 和 JavaScript 来创建跨平台的桌面应用程序。在 Electron 中,我们可以通过动态添加 DOM 元素来实现各种功能,同时也可以通过与主进程通信来调用 Electron 的方法。下面是一个简单的示例代码: ```javascript // 在渲染进程中动态添加一个按钮 const button = document.createElement('button'); button.innerText = '点击我'; button.addEventListener('click', () => { // 与主进程通信并调用方法 const { ipcRenderer } = require('electron'); ipcRenderer.send('open-file-dialog'); }); document.body.appendChild(button); ``` 在上述代码中,我们首先创建了一个按钮元素,并添加了点击事件。当点击按钮时,通过 `require` 方法引入了 Electron 的 `ipcRenderer` 模块,并调用了它的 `send` 方法来向主进程发送消息,并触发了 `open-file-dialog` 事件。 在主进程中,我们可以监听该事件,并执行相应的操作: ```javascript // 在主进程中监听 open-file-dialog 事件 const { dialog } = require('electron'); ipcMain.on('open-file-dialog', (event) => { dialog.showOpenDialog({ properties: ['openFile'] }).then(result => { event.reply('selected-file', result.filePaths); }).catch(err => { console.log(err); }); }); ``` 在上述代码中,我们通过 `ipcMain.on` 方法监听了 `open-file-dialog` 事件,并使用 `dialog.showOpenDialog` 方法打开了一个文件选择对话框,选择完文件后通过 `event.reply` 方法向渲染进程发送了选中的文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值