Javascript 压缩/混淆

Dean Edwards ‘s Packer 是个非常有名的 Javascript 压缩/混淆工具,有 .NET / PERL / WSH / PHP 等几种版本, 而本文介绍的 就是Nicolas Martin 发布的 PHP 版。

另外,本站已经运行此 PHP 版本,如果有需要在线压缩的请访问:

[url]http://www.codebit.cn/packer.php[/url]

本说明文档译自:

[url]http://dean.edwards.name/packer/usage/[/url]

使用说明:

所有声明,包括 function 函数定义,必须以分号结尾,示例代码:

Javascript: // sample code var $input, $output; // notice the semi-colon at the END of function declarations onload = function() { $input = document.getElementById(“input”); $output = document.getElementById(“output”); _clearAll(true); }; function _packScript() { $output.value = pack($input.value); }; function _clearAll($focus) { $output.value = $input.value = “”; // the “if” statement is NOT terminated with a semi-colon if ($focus) { $input.focus(); } };

参数:

Encoding

设置压缩/混淆的级别:

None

简单压缩,移除空格和注释,编码特殊字符,

Numeric (Base 10)

所有字符将转换成数字。

Normal (Base 62)

所有字符将转换成数字字母,这个是推荐设置。

High ASCII (Base 95)

将获得更高的压缩比率。(文件更小)

如果你使用这个选项,那么压缩后的代码必须使用 ISO-8859-1 编码,这是由于一个 IE 的 BUG 所致,内容页也需要同样的编码,如果你不能确定,那就使用 “Normal” 。

快速还原 (Fast Decode)

选中此选项,将插入一小段代码(120 bytes),以使代码能够更快的还原(decode)。

特殊字符 (Special Characters)

为了让压缩能区分全局变量和局部变量,压缩工具会将变量转换成下面的格式,由于 Javascript 并不存在确切意义上的全局变量和局部变量,我用下面的方式定义:

局部变量 Local ($)

变量只在当前范围内有效,参数和函数内部的变量就是一个典型例子,将局部变量用 $ 标识,压缩时会截取他们的第一个字符,附加的 $ 将使截取的字符加长,数字将会被保留。

Javascript: // unpacked: function test($left, $top1, $top2, $$length) { // do something }; // packed: function test(l,t1,t2,le){};

注意不要让命名冲突,美元标记截取只针对局部变量。

全局变量 Private (_)

全局变量可以在整个代码中使用,用 “ _ ” (下划线)来标识,有下划线标识的全局变量将会被转换成下划线加上一个数字:

Javascript: // unpacked: var _CONSTANT = 42; function _test($left, $top1, $top2, $$length) { return ($top1 / $top2) + _CONSTANT; }; // packed: var _0=42;function _1(l,t1,t2,le){return(t1/t2)+_0};

调试代码 Debug Code (;;;)

三个“;” (分号)将被当成一个单行注释,比如:

Javascript: ;;; alert(“TEST!”);

上面的代码在压缩时将被移除。

平台(Platforms)

压缩后的代码能够正常运行在所有支持 JavaScript 的浏览器,只有很少的 javascript 技术被用于还原代码。

有些浏览器不支持压缩,只有支持 DOM 才能正常运行,Legacy 浏览器将显示一个禁用的界面。

关于 PHP 版的详细信息请浏览:

[url]http://www.codebit.cn/packer.php[/url]

下载地址:

[url]http://www.codebit.cn/packer/packer.php-1.0.zip[/url]

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部