JSEncrypt 加密解密
将字符串加密解密插件JSEncrypt使用文档说明加密解密对于content过长的要进行分段解密分段解密
·
将字符串加密解密
插件JSEncrypt
github地址 https://github.com/travist/jsencrypt
使用文档说明 https://www.cnblogs.com/hlweng-0207/p/12971180.html
规则:公钥加密,私钥解密,这是规则!
(注意:如果后台开发人员要求前端使用公钥解密的话(不管什么理由),怼回去)
加密
import { JSEncrypt } from 'jsencrypt'
// 公钥
const key = `xxxx`
// 加密
export function setEncrypt (msg) {
const jsencrypt = new JSEncrypt()
jsencrypt.setPublicKey(key)
return jsencrypt.encrypt(msg)
}
解密
// 私钥
const privateKey = `xxxx`
// 解密
export function decrypt (msg) {
let decrypt = new JSEncrypt()
decrypt.setPrivateKey(privateKey)
var decryptMsg = decrypt.decrypt(msg)
return decryptMsg
}
当要解密的内容过长时,要进行分段解密
分段解密
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;
}
};
学习交流群
更多推荐
已为社区贡献1条内容
所有评论(0)