js压缩混淆和加密

Posted 会偷袭的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js压缩混淆和加密相关的知识,希望对你有一定的参考价值。

最近看到有些论坛在讨论js压缩、混淆和加密的问题,特意找了些资料看了下,现在总结一下:

1.关于三者的定义与区别

压缩:删除 javascript 代码中所有注释、跳格符号、换行符号及无用的空格,从而压缩 JS 文件大小,优化页面加载速度。

混淆:经过编码将变量和函数原命名改为毫无意义的命名(如function(a,b,c,e,g)等),以防止他人窥视和窃取 Javascript 源代码,也有一定压缩效果。

加密:一般用eval方法加密,效果与混淆相似,也做到了压缩的效果。

  从定义中可以看出,压缩的主要目的是消除注释等无用字符,达到精简js代码,减小js文件大小的目的,这也是页面优化的一种方式;而混淆和加密的目的比较接近,都是为了防止他人直接查看源码,对代码(如重要的api等)起保护作用,但这也只是增加了阅读代码的代价,也就是所谓的防君子不防小人。但是当混淆和加密联合使用时,如先混淆在加密(或者先加密再混淆)时,破解时间就会增加。关于js的加密,可以参考这篇文章:http://www.cnblogs.com/top5/archive/2009/08/07/1540860.html

2.demo

下面以更直观的方式来体会一下这四种方式(压缩、混淆、加密、混淆&加密)的不同。

源js代码如下:

 View Code

(1)经过压缩后的代码如下:

1 function xx(num,str){var a=num;this.aa=a;this.bb=function(){alert(str)};this.cc=function(){for(var i=0;i<10;i++){document.title=i}};this.yy=new yy();function xxf(){alert("xxf");if((/\\{\\d+\\}/).test("a\\sdf{2}ab"))alert("{\\\\d} is match!")}};xx.prototype.dd=function(){alert("dd");a.yy.ll();var fnx=function(i){this.ab=i;this.aa=function(){alert(this.ab)}};var f1=new fnx(1);f1.aa()};function yy(){alert(\'yy\')};yy.prototype.ll=function(){alert("yyll")};var a=new xx(100,"hello"),b=new xx(0,"ttyp");eval("a.aa=20");a.bb();b.dd();alert(a.aa);var k=9;function kk(){var k=0;alert(k)};kk();alert(k);

压缩后与源码相比只是少了注释、空格、换行等。

(2)经过混淆后的代码如下:

1 function xx(d,e){var f=d;this.aa=f;this.bb=function(){alert(e)};this.cc=function(){for(var g=0;g<10;g++){document.title=g}};this.yy=new yy();function xxf(){alert("xxf");if((/\\{\\d+\\}/).test("a\\sdf{2}ab"))alert("{\\\\d} is match!")}};xx.prototype.dd=function(){alert("dd");a.yy.ll();var fnx=function(e){this.ab=e;this.aa=function(){alert(this.ab)}};var d=new fnx(1);d.aa()};function yy(){alert(\'yy\')};yy.prototype.ll=function(){alert("yyll")};var a=new xx(100,"hello"),b=new xx(0,"ttyp");eval("a.aa=20");a.bb();b.dd();alert(a.aa);var c=9;function kk(){var d=0;alert(d)};kk();alert(c);

混淆后除了少了注释、空格和换行等,参数也被a,b,c,d,e等字符代替,提高了阅读的难度。

(3)经过加密后的代码如下:

1 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!\'\'.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return\'\\\\w+\'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);return p;}(\'3 e(o,l){5 a=o;6.8=a;6.p=3(){4(l)};6.B=3(){A(5 i=0;i<y;i++){x.z=i}};6.7=c 7();3 j(){4("j");t((/\\\\{\\\\d+\\\\}/).s("a\\\\u{2}g"))4("{\\\\\\\\d} w v!")}};e.r.f=3(){4("f");a.7.h();5 n=3(i){6.g=i;6.8=3(){4(6.g)}};5 m=c n(1);m.8()};3 7(){4(\\\'7\\\')};7.r.h=3(){4("D")};5 a=c e(F,"H"),b=c e(0,"G");E("a.8=C");a.p();b.f();4(a.8);5 k=9;3 q(){5 k=0;4(k)};q();4(k);\',44,44,\'|||function|alert|var|this|yy|aa||||new||xx|dd|ab|ll||xxf||str|f1|fnx|num|bb|kk|prototype|test|if|sdf|match|is|document|10|title|for|cc|20|yyll|eval|100|ttyp|hello\'.split(\'|\'),0,{}))

加密后除了有混淆的作用外,有些代码被加密了,进一步提高了阅读的难度。

(4)经过混淆&加密后的代码如下

1 eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!\'\'.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return\'\\\\w+\'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);return p;}(\'4 i(d,e){5 f=d;6.8=f;6.p=4(){3(e)};6.s=4(){t(5 g=0;g<y;g++){G.F=g}};6.7=h 7();4 l(){3("l");x((/\\\\{\\\\d+\\\\}/).v("a\\\\u{2}j"))3("{\\\\\\\\d} w r!")}};i.o.k=4(){3("k");a.7.m();5 n=4(e){6.j=e;6.8=4(){3(6.j)}};5 d=h n(1);d.8()};4 7(){3(\\\'7\\\')};7.o.m=4(){3("E")};5 a=h i(A,"z"),b=h i(0,"B");D("a.8=C");a.p();b.k();3(a.8);5 c=9;4 q(){5 d=0;3(d)};q();3(c);\',43,43,\'|||alert|function|var|this|yy|aa|||||||||new|xx|ab|dd|xxf|ll|fnx|prototype|bb|kk|match|cc|for|sdf|test|is|if|10|hello|100|ttyp|20|eval|yyll|title|document\'.split(\'|\'),0,{}))

3.浏览器是怎么解析混淆和加密后的js代码的

其实变量名只要是Unicode字符就行了,对于js引擎来说都是一样的,只是人类觉得他们不同而已。

 

4.js压缩工具

其实js的压缩工具网上有很多,在线和安装版的都有,文章中使用的是HDS JSObfuscator v2.13绿色版。

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

以上是关于js压缩混淆和加密的主要内容,如果未能解决你的问题,请参考以下文章

vue 代码混淆加密压缩

js代码加密后不执行了加分哦

如何让网站打开速度快

混淆过的js代码如何还原?

js源码保护

lua如何混淆加密?