个人经验,这三个加密库的组合是最佳解决方案
crypto-js、jsrsasign、jsencrypt
crypto-js 进行 AES 对称加密
npm i crypto-js
import CryptoJS from 'crypto-js'
// 加密
var ciphertext = CryptoJS.AES.encrypt('message', 'key').toString();
// 解密
var bytes = CryptoJS.AES.decrypt(ciphertext, 'key');
var originalText = bytes.toString(CryptoJS.enc.Utf8);
console.log(originalText); // 输出 'message'
jsrsasign 生成 RSA 密钥对
npm i jsrsasign
import jsrsasign from 'jsrsasign'
var rsaKeypair = jsrsasign.KEYUTIL.generateKeypair('RSA',1024);
// 获取公钥
let PUBLIC = jsrsasign.KEYUTIL.getPEM(rsaKeypair.prvKeyObj);
// 获取私钥
let PRIVATE = jsrsasign.KEYUTIL.getPEM(rsaKeypair.prvKeyObj,'PKCS8PRV');
jsencrypt 进行 RSA 加解密
npm i jsencrypt
import JSEncrypt from 'jsencrypt'
let PUBLIC = '' // 公钥
let PRIVATE = '' // 密钥
// 加密
const encrypt = new JSEncrypt()
encrypt.setPublicKey(PUBLIC)
let cipher = encrypt.encrypt('message')
console.log(cipher)
// 解密
const decrypt = new JSEncrypt()
decrypt.setPrivateKey(PRIVATE)
console.log(decrypt.decrypt(cipher)) // 输出 'message'
本文转载自: https://blog.csdn.net/qq_41027897/article/details/128501391
版权归原作者 ychunx 所有, 如有侵权,请联系我们删除。
版权归原作者 ychunx 所有, 如有侵权,请联系我们删除。