1.简介公司网站的界面经常被爬虫爬取,不时造成服务器压力过大,白白消耗公司服务器资源。于是开始接触js加密这门业务。找了很多支持js在线加密的网站,还有各种加密方案。我在这里做个笔记,把各大加密站的优缺点一一列举出来。查看哪种加密html代码的方法最安全。2.加密探索一开始在网上搜索js加密,看到很多解决方案,比如crypto,base64,MD5,sha1,sha256,unicode编码,AES/DES,RSA都是优秀的js加密算法,但是在最后我发现这些加密都是在前端完成的,也就是在用户的电脑上完成的,完全透明,所以爬虫作者也很难破解,他不需要去探究你的计算过程算法,他只需要得到你相同的加密算法代码就可以用同样的方法加密,然后就可以窃取接口信息了。3.工具介绍Toolfk支持js的不可逆混淆加密,以及一些简单的加密配置。4.js案例代码(function(){String.prototype.searchAB=function(){returnthis.match(/[^A|B]/g);}conststr='本工具由wwBw.jsjiami提供。cAom接口。\n专注JS安全领域近10年\n企业运营\n专业的JS加密研发团队。'.searchAB().toString().replaceAll(',','');alert(str);console.日志(海峡);}());5。经过Toolfk函数toolfk0_0x32d0(){const_0x3bbec2=['toString','117834ngWBQW','425511tUIIta','bind','apply','3hGjcGO','log','30IpJIXE','这个工具是由\x20wwBw.jsjiami.cAom\x20接口。专注JS安全领域近10年,企业化运营,专业的JS加密研发团队。','警告','20vlCvIB','1022697VpKmbG','4033827JRtqjM','113586bEjYjG','长度','3589336pHNyCL','(((.+)+)+)+$','12pKQVdE','table','search','error','info','{}.constructor(\x22return\x20this\x22)(\x20)','11482262SDednJ','prototype','match','searchAB','console','8lToHKa','replaceAll'];toolfk0_0x32d0=function(){return_0x3bbec2;};returntoolfk0_0x32d0();}functiontoolfk0_0x5a72(_0x2e2be1,_0x43c1ea){const_0x5c8242=toolfk0_0x32d0()=0functiontoolf();返回工具fk0_0x5a72(_0x2e2be1,_0x43c1ea)_0x32ad28,_0x173913){_0x32ad28=_0x32ad28-0x1dc;let_0x210fec=_0x5c8242[_0x32ad28];return_0x210fec;},toolfk0_0x5a72(_0x2e2be1,_0x43c1ea);}(function(_0x5ca880,_0x30f18c){const_0x2178e8=toolfk0_0x5a72,_0x117c22=_0x5ca880();while(!![]){try{const_0x3f63fa=parseInt(_0x2178e8(0x1dc))/0x1*(-parseInt(_0x2178e8(0x1f6))/0x2)+-parseInt(_0x2178e8(0x1f7))/0x3*(-parseInt(_0x2178e8(0x1f3))/0x4)+parseInt(_0x2178e8(0x1e1))/0x5*(-parseInt(_0x2178e8(0x1e4))/0x6)+parseInt(_0x2178e8(0x1e3))/0x7+parseInt(_0x2178e8(0x2178e8(0x1e3))1e6))/0x8+parseInt(_0x2178e8(0x1e2))/0x9*(parseInt(_0x2178e8(0x1de))/0xa)+parseInt(_0x2178e8(0x1ee))/0xb*(-parseInt(_0x2178e8(0x1e8))/0xc);if(_0x3f63fa===_0x30f18c)break;else_0x117c22['push'](_0x117c22['shift']());}catch(_0x3bd4d2){_0x117c22['push'](_0x117c22['shift']());}}}(toolfk0_0x32d0,0x563a0),(function(){const_0x2e860a=toolfk0_0x5a72,_0x574fae=(function(){let_0x5ad1ec=!![];返回函数(_0x45cf64,_0x52ec9b){const_0x59bd47=_0x5ad1ec?(){const_0x55f4cb=toolfk0_0x5a72;if(_0x52ec9b){const_0x49c7fc=_0x52ec9b[_0x55f4cb(0x1f9)](_0x45cf64,参数);返回_0x52ec9b=null,_0x49c7fc;}}:函数=1ec(){};],_0x59bd47;};}()),_0x404242=_0x574fae(这个,函数(){const_0x160a3a=toolfk0_0x5a72;返回_0x404242[_0x160a3a(0x1f5)]()[_0x160a3a(0x1ea)](_0x160a3a)[0xtoString']()['constructor'](_0x404242)[_0x160a3a(0x1ea)](_0x160a3a(0x1e7));});_0x404242();const_0x51a3ef=(function(){let_0x2131d3=!![];返回功能(_0x544121,_0x560f33){const_0x11bae6=_0x2131d3?function(){if(_0x560f33){const_0x27215c=_0x560f33['apply'](_0x544121,arguments);返回_0x560f33=null,_0x27215c;}}:function133215c=_0x560f33['apply'](_0x544121,arguments);返回_0x560f33=null,_0x27215c;}}:function133215c=_0x560f33;}1returnd(){0};2returnd(){0}=![],_0x11bae6;};}()),_0x498218=_0x51a3ef(this,function(){const_0xdd05ea=toolfk0_0x5a72;let_0x4d0db2;try{const_0x52c2c6=Function('return\x20(function()\x20'+_0xdd05ea(0x1ed)+');');_0x4d0db2=_0x52c2c6();}catch(_0x486dd0){_0x4d0db2=窗口;}const_0x6303a1=_0x4d0db2[_0xdd05ea(0x1f2)]=_0x4d0db2[_0xdd105ea](0|x|dd105ea)},_0x3d73a9=[_0xdd05ea(0x1dd),_0xdd05ea(0x1e0),_0xdd05ea(0x1ec),_0xdd05ea(0x1eb),'异常',_0xdd05ea(0x1e9),'跟踪'];for(让_0xea864b=0x0;_0xea864d7<_0x_0xdd05ea(0x1e5)];_0xea864b++){const_0x144049=_0x51a3ef['constructor']['prototype'][_0xdd05ea(0x1f8)](_0x51a3ef),_0x132f4e=_0x3d73a9[_0xea864b],_0x3059c6=_0x6303a1[_0x132f4e]||_0x144049;_0x144049['__proto__']=_0x51a3ef['bind'](_0x51a3ef),_0x144049['toString']=_0x3059c6[_0xdd05ea(0x1f5)][_0xdd05ea(0x1f8)](_0x3059c6),_0x6303a1[_0x132f4e]=_0x144049;}});_0x498218(),字符串[_0x2e860a(0x1ef)][_0x2e860a(0x1f1)]=函数(){const_0x3efb0x(dthisb0x=60aef_1)/[^A|B]/g);};const_0x3f04b3=_0x2e860a(0x1df)[_0x2e860a(0x1f1)]()['toString']()[_0x2e860a(0x1f4)](',','');警报(_0x3f04b3),控制台[_0x2e860a(0x1dd)](_0x3f04b3);}()));6。formatfunctiontoolfk0_0x32d0(){const_0x3bbec2=['toString','117834ngWBQW','425511tUIIta','bind','apply','3hGjcGO','log','30IpJIXE','本工具由\x20wwBw提供.jsjiami.cAom\x20接口专注JS安全领域近10年,企业运营,专业的JS加密研发团队。','警告','20vlCvIB','1022697VpKmbG','4033827JRtqjM','113586bEjYjG','长度','3589336pHNyCL','(((.+)+)+)+$','12pKQVdE','table','search','error','info','{}.constructor(\x22return\x20this\x22)(\x20)','11482262SDednJ','prototype','match','searchAB','console','8lToHKa','replaceAll'];toolfk0_0x32d0=函数(){返回_0x3bbec2;};返回toolfk0_0x32d0();}functiontoolfk0_0x5a72(_0x2e2be1,_0x43c1ea){const_0x5c8242=toolfk0_0x32d0();返回toolfk0_0x5a72=函数(_0x32ad28,_0x173913){_0x32ad28=_0x32ad28-0x1dc;让_0x210fec=_0x5c8242[_0x32ad28];返回_0x210fec;},toolfk0_0x5a72(_0x2e2be1,_0x43c1ea);}(function(_0x5ca880,_0x30f18c){const_0x2178e8=toolfk0_0x5a72,_0x117c22=_0x5ca880();while(!![]){try{const_0x3f63fa=parseInt(_0x2178e8(0x1dc))/0x1*(-parseInt(_0x2178e8(0x1f6))/0x2)+-parseInt(_0x2178e8(0x1f7))/0x3*(-parseInt(_0x2178e8(0x1f3))/0x4)+parseInt(_0x2178e8(0x1e1))/0x5*(-parseInt(_0x2178e8(0x1e4))/0x6)+parseInt(_0x2178e8(0x1e3))/0x7+parseInt(_08x(2178)0x1e6))/0x8+parseInt(_0x2178e8(0x1e2))/0x9*(parseInt(_0x2178e8(0x1de))/0xa)+parseInt(_0x2178e8(0x1ee))/0xb*(-parseInt(_0x2178e8(0x1e8))/0xc);如果(_0x3f63fa===_0x30f18c)中断;否则_0x117c22['推'](_0x117c22['移位']());}catch(_0x3bd4d2){_0x117c22['push'](_0x117c22['shift']());}}}(toolfk0_0x32d0,0x563a0),(function(){const_0x2e860a=toolfk0_0x5a72,_0x574fae=(function(){let_0x5ad1ec=!![];返回函数(_0x45cf64,_0x52ec9b){const_0x59bdx471=_0x59bdx471{const_0x55f4cb=toolfk0_0x5a72;如果(_0x52ec9b){const_0x49c7fc=_0x52ec9b[_0x55f4cb(0x1f9)](_0x45cf64,参数);返回_0x52ec9b=null,_0x49c7fc;}}:功能(){};返回_0x5ad1ec=![],_0x59bd47;};}()),_0x404242=_0x574fae(this,function(){const_0x160a3a=toolfk0_0x5a72;返回_0x404242[_0x160a3a(0x1f5)]()[_0x160a3a(0x1ea)](_0x160a3a(0x1e7')][()['toString'构造函数'](_0x404242)[_0x160a3a(0x1ea)](_0x160a3a(0x1e7));});_0x404242();const_0x51a3ef=(function(){let_0x2131d3=!![];返回函数(_0x544121,_0x560f33){const_0x11bae6=_0x2131d3?function(){if(_0x560f33){const_0x27215c=_0x560f33]_0x560f34[0x560f34[0x560f34]参数);返回_0x560f33=null,_0x27215c;}}:function(){};返回_0x2131d3=![],_0x11bae6;};}()),_0x498218=_0x51a3ef(this,function(){const_0xdd05ea=toolfk0_0x5a72;让_0x4d0db2;try{const_0x52c2c6=Function('return\x20(function()\x20'+_0xdd05ea(0x1ed)+');');_0x4d0db2=_0x52c2c6();}catch(_0x486dd0){_0x4d0db2=窗口;}const_0x6303a1=_0x4d0db2[_0xdd05ea(0x1f2)]=_0x4d0db2[_0xdd05ea(0x1f2)]||{},_0x3d73a9=[_0xdd05ea(0x1dd),_0xdd05ea(0x1e0),_0xdd05ea(0x1ec),_0xdd05ea(0x1eb),'异常',_0xdd05ea(0x1e9),'跟踪'];for(let_0xea864b=0x0;_0xea864b<_0x3d73a9[_0xdd05ea(0x1e5)];_0xea864b++){const_0x144049=_0x51a3ef['constructor']['prototype'][_0xdd05ea(0x1f8)](_0x51a3ef),_0x132f4e=_0x3d73a9[_0xea864b],_0x3059c6=_0x6303a1[_0x132f4e]||_0x144049;_0x144049['__proto__']=_0x51a3ef['bind'](_0x51a3ef),_0x144049['toString']=_0x3059c6[_0xdd05ea(0x1f5)][_0xdd05ea(0x1f8)](_0x3059c6),_0x6303a1[_0x132f4e]=_0x144049;}});_0x498218(),字符串[_0x2e860a(0x1ef)][_0x2e860a(0x1f1)]=函数(){const_0x3efbd7=_0x2e860a;返回这个[_0x3efbd7(0x1f0)](/[^A|B]/g);};const_0x3f04b3=_0x2e860a(0x1df)[_0x2e860a(0x1f1)]()['toString']()[_0x2e860a(0x1f4)](',','');警报(_0x3f04b3),控制台[_0x2e860a(0x1dd)](_0x3f04b3);}());7。加密后分析可以看到加密后代码量变的非常大,变量名被混淆了。我们先看看加密后的代码是否还在正常运行。按F12打开浏览器控制台。将加密后的js代码复制粘贴到控制台运行,看是否成功。实验发现格式化后的加密代码无法正常执行,代码卡住,电脑风扇也在转,说明这个工具默认增加了。去格式代码在里面。一旦格式化就会卡住,如果不格式化,则默认正常运行。你可以手动复制运行试试。基本上到这里,就可以筛选出很多js基础不好的人了。解决办法就是找到反格式化的地方,改一下判断逻辑。所以这里我给toolfk打7分,总的来说还是比较好用的,可以防止一些有预谋的人做错事,但是性能下降了很多。sojson.v6sojson.com
