我正在寻找类似于这个工具或类似工具的东西:http://javascriptobfuscator.com/Javascript-Obfuscator.aspx
而是作为node.js的一个模块,因此您可以在发送客户端js文件之前对其进行模糊处理。
上面的url工具做的事情很少,但最重要的是,它将引号和变量名之间的字符串更改为不可读的形式。
我曾尝试编写仅用于编码字符串的代码,但这会使我的代码崩溃:
var output = str.replace(/(")(([^"\\]|\\.)+)(")/gi, function(match, p1, p2, p3, p4) {
return p1 + someEncodingFunc(p2) + p4;
});
编辑:
多亏了robertklep,我找到了混淆模块。它几乎做得很好。也许有人能帮我解决这个问题?https://github.com/uxebu/confusion/issues/1
你可以在这个项目页面的代码输出中看到问题:
(function(_x24139) {
a[_x24139[0]](called[_x24139[1]](_x24139[2]));
an[_x24139[3]](_x24139[4], _x24139[5], _x24139[6]);
}).call(
this,
["property", "with", "a string literal", "other", "call", "is", "here"]
);
我所需要的就是在数组中混淆这些字符串。我注意到,如果字符串中有任何utf8字符,那么它将被混淆为\uXXXX形式。但只有utf8。如果这也会将ascii混淆为\xYY格式..基本上都是角色。
发布于 2015-06-05 19:10:15
你为什么不试试JScrambler呢?它不仅有更多的针对字符串和控制流的源代码转换,而且还有一堆代码陷阱和称为自我防御的运行时保护。而且,它对我来说开箱即用。他们声称与所有JS库兼容,现在他们是唯一正式支持Node.js的解决方案:
我不认为Uglify是一个好的选择。它是一个代码优化器,不是用来保护你的代码的。它确实重命名了变量和函数,但这是一种太弱的保护,无法考虑。
https://stackoverflow.com/questions/30650299
复制相似问题