关于JS加密的一些思路整理

在这里插入图片描述

前言

之前很多用户提过,jsjiami.v7加密后体积过大,于是有了本文,一些对js加密压缩的想法。

思路1.关于字符字节长度的区别

// 要计算字节长度的字符串
var str = "你好,世界!";

// 使用 TextEncoder 对字符串进行编码
var encoder = new TextEncoder();
var encodedBytes = encoder.encode(str);

// 字节长度为编码后字节数组的长度
var byteLength = encodedBytes.byteLength;

console.log("字符串的字节长度为:", byteLength);

中文字符和符号一般占用3个字节,英文是1个字节。各位自行尝试,我在想,是否可以将字节长的字符转换成字节少的字符,这样可以小幅度节省代码体积。

思路2.关于特定关键词的转换

// 创建一个映射表,将特定关键词映射到一个字节的字符
var keywordMap = {
    'function': 'ƒ', // 例如,将 'function' 映射到 'ƒ'
    'if': '¡',       // 将 'if' 映射到 '¡'
    // 添加更多映射关系...
};

// 将 JavaScript 代码中的特定关键词替换为映射表中的字符
function compressCode(code) {
    for (var keyword in keywordMap) {
        if (keywordMap.hasOwnProperty(keyword)) {
            var pattern = new RegExp('\\b' + keyword + '\\b', 'g');
            code = code.replace(pattern, keywordMap[keyword]);
        }
    }
    return code;
}

// 将特定关键词的字符替换回原始的关键词
function decompressCode(compressedCode) {
    for (var keyword in keywordMap) {
        if (keywordMap.hasOwnProperty(keyword)) {
            var pattern = new RegExp('\\b' + keywordMap[keyword] + '\\b', 'g');
            compressedCode = compressedCode.replace(pattern, keyword);
        }
    }
    return compressedCode;
}

// 示例 JavaScript 代码
var originalCode = `
    function greet() {
        if (true) {
            console.log("Hello, World!");
        }
    }
    greet();
`;

// 使用压缩算法进行压缩
var compressedCode = compressCode(originalCode);
console.log('压缩后的代码:\n', compressedCode);

// 使用解压缩算法进行解压缩
var decompressedCode = decompressCode(compressedCode);
console.log('解压缩后的代码:\n', decompressedCode);
eval(decompressedCode); // 执行解压缩后的代码

将所有长度固定的关键词转换成其他占用更小的字符,但是需要注意的是,防止客户自己有字符,导致转码错误。

结语

关于js加密压缩的思路就这么多,准备这段时间去实现一下,尽快解决体积问题。这样可以在不牺牲安全的情况下尽量缩小体积。如果各位有更好的思路也可以一起分享在评论区互相讨论。感谢。

如js加密源代码丢失,jsjiami客服可以在线人工js解密。

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值