是否有推荐的javascript代码混淆工具?
我在堆栈溢出中搜索过它,有人建议使用“YUI压缩机”。
但是,它只执行以下操作:
但它并不取代一个对象的属性。
假设我有这样的密码:
var a=obj.fun();
var b=obj.pro;
我想要这样的东西:
var xxx,yy,zz;
xxx=obj['yy']();
yy=obj['zz'];
那么,即使是人们重新格式化我的代码,他也不可能知道一个对象的属性/方法,除非他重新做方法/属性替换。
这只是一个例子,我只想要工具做更多的混淆,而不是仅仅压缩。
有什么建议吗?
发布于 2012-02-19 13:08:31
您应该尝试一下google闭包编译器,它提供了三个级别的写作:
WHITESPACE_ONLY
SIMPLE_OPTIMIZATIONS
。ADVANCED_OPTIMIZATIONS
。WHITESPACE_ONLY
删除注释,修剪换行和不必要的空格。输出代码与源JavaScript相同。
SIMPLE_OPTIMIZATIONS
还重命名局部变量和函数参数。
ADVANCED_OPTIMIZATIONS
是最复杂的,除了上述两个级别的优化之外,它还做到了:
举个例子:
//INPUT CODE
function unusedFunction(note) {
alert(note['text']);
}
function displayNoteTitle(note) {
alert(note['title']);
}
var flowerNote = {};
flowerNote['title'] = "Flowers";
displayNoteTitle(flowerNote);
WHITESPACE_ONLY
的结果是:
//WHITESPACE_ONLY OUTPUT CODE
function unusedFunction(note){alert(note["text"])}function displayNoteTitle(note){alert(note["title"])}var flowerNote={};flowerNote["title"]="Flowers";displayNoteTitle(flowerNote);
SIMPLE_OPTIMIZATIONS
的结果是:
//SIMPLE_OPTIMIZATIONS OUTPUT CODE
function unusedFunction(a){alert(a.text)}function displayNoteTitle(a){alert(a.title)}var flowerNote={title:"Flowers"};displayNoteTitle(flowerNote);
ADVANCED_OPTIMIZATIONS
的结果是:
//ADVANCED_OPTIMIZATIONS OUTPUT CODE
alert("Flowers");
我认为SIMPLE_OPTIMIZATIONS
和ADVANCED_OPTIMIZATIONS
能满足你的需要。
发布于 2012-02-19 13:01:13
试试Google闭包编译器。在高级模式下,它还会对代码的部分进行重构,并以这种方式创建一些性能改进。
发布于 2012-02-19 13:04:18
Javascript是一种动态类型的语言,与浏览器交互,因此几乎不可能进行适当的分析,以找到代码中可以弹出对象的位置。
由于这些原因,您无法安全地重命名对象的属性。
https://stackoverflow.com/questions/9349348
复制相似问题