实现RSA加密解密、DES加密

579 阅读1分钟

前言

前端实现RSA加密解密、DES解密,主要用到的包有jsencrypt、crypto-js

使用场景

  • 需要在本地存储一些标志位,安全问题
  • 用户登录密码的加密

加密方式

  • RSA加密
安装 npm install jsencrypt
在线生成一对RSA公钥和私钥
import JSEncrypt from 'jsencrypt';
 
const PRIV_KEY = `
-----BEGIN PRIVATE KEY-----
私钥内容
-----END PRIVATE KEY-----`;
 
const PUB_KEY = `
-----BEGIN PUBLIC KEY-----
公钥内容
-----END PUBLIC KEY-----`;
// 公钥加密
function encrypt(text) {
  const encrypt = new JSEncrypt();
  encrypt.setPublicKey(PUB_KEY);
  const encrypted = encrypt.encrypt(text);
  return encrypted;
}
 
// 私钥解密
function decrypt(text) {
  const decrypt = new JSEncrypt();
  decrypt.setPrivateKey(PRIV_KEY);
  const decrypted = decrypt.decrypt(text);
  return decrypted;
}

查看加密数据是否准确:
如果想要在代码之外,查看是否加密准确,可在线解密对比结果,解密网址:http://www.bejson.com/enc/rsa/

  • DES加密

安装  npm install crypto-js

使用方式: 前端加密,后端解密

import CryptoJS from 'crypto-js';
const text = CryptoJS.DES.encrypt("待加密文本", CryptoJS.enc.Utf8.parse('约定加密钥'), {
  mode: CryptoJS.mode.ECB,
}).toString();