使用库 node-forge
npm install node-forge
加密算法
const key = 'vue-ssas'; 加密解密使用的key
export function encrypt(word: any) {
var iv = forge.random.getBytesSync(12); // 生成随机iv 12字节
const cipher = forge.cipher.createCipher('AES-GCM', key) // 生成AES-GCM模式的cipher对象 并传入密钥
cipher.start({
iv: iv,
});
cipher.update(forge.util.createBuffer(forge.util.encodeUtf8(word)));
cipher.finish();
var encrypted = cipher.output;
var tag = cipher.mode.tag;
return window.btoa(iv + encrypted.data + tag.data);
};
解密算法
const key = 'vue-ssas'; 加密解密使用的key 同解密一致
export function decrypt(datamsg: string) {
datamsg = window.atob(datamsg)
const iv = datamsg.slice(0, 12)
const tag = datamsg.slice(-16)
const data = datamsg.slice(12, datamsg.length - 16)
var decipher = forge.cipher.createDecipher('AES-GCM', key)
decipher.start({
iv: iv,
tag: tag
})
decipher.update(forge.util.createBuffer(data))
const pass = decipher.finish()
if (pass) {
return decipher.output.toString()
}
};
如何使用
控制台打印