pako库介绍
Pako 是 JS 版 zlib,支持 Gzip/Deflate 浏览器 Node 压缩解压
Pako 是 JS 版 zlib,支持 Gzip/Deflate 浏览器 Node 压缩解压
下载地址:https://github.com/nodeca/pako/tags
演示:
尝试一下>>
// XOR 加密/解密函数
function xorCrypto(data, key) {
var result = new Uint8Array(data.length);
for (var i = 0; i < data.length; i++) {
result[i] = data[i] ^ key;
}
return result;
}
// 配置
var XOR_KEY = 0x5A; // 密钥
var message = "hello world,你好呀";
// 步骤1: 字符串转 Uint8Array
var uint8 = new TextEncoder().encode(message);
// 步骤2: XOR 加密
var encrypted = xorCrypto(uint8, XOR_KEY);
// 步骤3: Pako 压缩
var compressed = pako.deflate(encrypted);
// 步骤4: Base64 编码
var base64 = btoa(String.fromCharCode.apply(null, compressed));
// 步骤1: Base64 解码
var binary = atob(base64);
var received = new Uint8Array(binary.length);
for (var i = 0; i < binary.length; i++) {
received[i] = binary.charCodeAt(i);
}
// 步骤2: Pako 解压
var decompressed = pako.inflate(received);
// 步骤3: XOR 解密
var decrypted = xorCrypto(decompressed, XOR_KEY);
// 步骤4: 转字符串
var finalResult = new TextDecoder().decode(decrypted);
alert(finalResult)