首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript代码混淆工具

javascript代码混淆工具
EN

Stack Overflow用户
提问于 2012-02-19 12:58:24
回答 4查看 532关注 0票数 0

是否有推荐的javascript代码混淆工具?

我在堆栈溢出中搜索过它,有人建议使用“YUI压缩机”。

但是,它只执行以下操作:

  1. 删除注释/空白/新行
  2. 替换局部变量
  3. 或者别的什么东西。

但它并不取代一个对象的属性。

假设我有这样的密码:

代码语言:javascript
运行
复制
var a=obj.fun();
var b=obj.pro;

我想要这样的东西:

代码语言:javascript
运行
复制
var xxx,yy,zz;
xxx=obj['yy']();
yy=obj['zz'];

那么,即使是人们重新格式化我的代码,他也不可能知道一个对象的属性/方法,除非他重新做方法/属性替换。

这只是一个例子,我只想要工具做更多的混淆,而不是仅仅压缩。

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-19 13:08:31

您应该尝试一下google闭包编译器,它提供了三个级别的写作:

  1. 第一个是WHITESPACE_ONLY
  2. 第二个是SIMPLE_OPTIMIZATIONS
  3. 第三个是ADVANCED_OPTIMIZATIONS

WHITESPACE_ONLY删除注释,修剪换行和不必要的空格。输出代码与源JavaScript相同。

SIMPLE_OPTIMIZATIONS还重命名局部变量和函数参数。

ADVANCED_OPTIMIZATIONS是最复杂的,除了上述两个级别的优化之外,它还做到了:

  • 全局变量重命名
  • 删除未调用的函数
  • 功能衬里

举个例子:

代码语言:javascript
运行
复制
//INPUT CODE
function unusedFunction(note) {
  alert(note['text']);
}

function displayNoteTitle(note) {
  alert(note['title']);
}

var flowerNote = {};
flowerNote['title'] = "Flowers";
displayNoteTitle(flowerNote);

WHITESPACE_ONLY的结果是:

代码语言:javascript
运行
复制
//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的结果是:

代码语言:javascript
运行
复制
//SIMPLE_OPTIMIZATIONS OUTPUT CODE
function unusedFunction(a){alert(a.text)}function displayNoteTitle(a){alert(a.title)}var flowerNote={title:"Flowers"};displayNoteTitle(flowerNote);

ADVANCED_OPTIMIZATIONS的结果是:

代码语言:javascript
运行
复制
//ADVANCED_OPTIMIZATIONS OUTPUT CODE
alert("Flowers");

我认为SIMPLE_OPTIMIZATIONSADVANCED_OPTIMIZATIONS能满足你的需要。

票数 0
EN

Stack Overflow用户

发布于 2012-02-19 13:01:13

试试Google闭包编译器。在高级模式下,它还会对代码的部分进行重构,并以这种方式创建一些性能改进。

票数 1
EN

Stack Overflow用户

发布于 2012-02-19 13:04:18

Javascript是一种动态类型的语言,与浏览器交互,因此几乎不可能进行适当的分析,以找到代码中可以弹出对象的位置。

由于这些原因,您无法安全地重命名对象的属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9349348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档