jsencrypt.js 插件用于:加解密字符串,公钥加密,私钥解密。
使用例子:
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
const publicKey = "" // 公钥
const privateKey= "" // 私钥
// 加密
export function encrypt(txt) {
const encryptor = new JSEncrypt()
encryptor.setPublicKey(publicKey) // 设置公钥
return encryptor.encrypt(txt) // 对数据进行加密
}
// 解密
export function decrypt(txt) {
const encryptor = new JSEncrypt()
encryptor.setPrivateKey(privateKey) // 设置私钥
return encryptor.decrypt(txt) // 对数据进行解密
}
如果加密数据过长,还可以分段解密
import { b64tohex} from "jsencrypt/lib/lib/jsbn/base64";
export const decryptLong = (content:string) => {
const enc = new JSEncrypt({});
enc.setPrivateKey(LICENSE_KEY); // 私钥
let k = enc.getKey();
let maxLength = 128;
try {
let hexStr = b64tohex(content);
if (hexStr.length > maxLength * 2) {
let hexStrArr = hexStr.match(/.{1,256}/g); // 128位解密。取256位
const ct = hexStrArr.map(entry => k.decrypt(entry)).join('');
return ct;
} else {
return k.decrypt(hexStr);
}
} catch (ex) {
return false;
}
};
网友评论