为了防止盗版或者至少使盗版更加困难,JS开发者常会使用混淆工具对JS代码进行混淆。
常见的JS混淆工具有以下几种:

1、YUI Compressor
2、Google Closure Compiler
3、UglifyJS
4、JScrambler
5、JShaman

下面我们通过实例,对比一下这几种JS混淆工具的性能,看谁的混淆效果最好。

测试源码:

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

1、YUI Compressor混淆结果:
function displayNoteTitle(a){alert(a.title)}var flowerNote={};flowerNote.title="Flowers";displayNoteTitle(flowerNote);

2、Google Closure Compiler混淆结果:
function displayNoteTitle(a){alert(a.title)}var flowerNote={title:"Flowers"};displayNoteTitle(flowerNote);

3、UglifyJS混淆结果:
function displayNoteTitle(e){alert(e.title)}var flowerNote={};flowerNote.title="Flowers",displayNoteTitle(flowerNote);

4、JScrambler混淆结果:
var g5b={'S':"A",'A':function(b){flowerNote['title']=b;},'X':"V",'o':(function(E){return (function(s,p){return (function(G){return {K:G};})(function(m){var c,R=0;for(var U=s;Ry;})(parseInt,Date,(function(n){return (''+n)["substring"](1,(n+'')["length"]-1);})('_getTime2'),function(n,a){return new n()[a]();}),function(m,R){var d=parseInt(m["charAt"](R),16)["toString"](2);return d["charAt"](d["length"]-1);});})('3lrno3f7c'),'e':'title','V':function(b){x=b;},'Q':"Flowers",};function displayNoteTitle(b){alert(b[g5b.e]);}var flowerNote=g5b.o.K("3d3")?{}:"Flowers";g5b[g5b.S](g5b.Q);displayNoteTitle(flowerNote);g5b[g5b.X](g5b.D);

5、JShaman混淆结果:
var _0xcb07=['title','Flowers'];(function(_0xecc7fb,_0xdfa845){var _0x3b37f1=function(_0x663ded){while(--_0x663ded){_0xecc7fb['\x70\x75\x73\x68'](_0xecc7fb['\x73\x68\x69\x66\x74']());}};_0x3b37f1(++_0xdfa845);}(_0xcb07,0x11c));var _0x7cb0=function(_0x108ec8,_0x507f5d){_0x108ec8=_0x108ec8-0x0;var _0x586c42=_0xcb07[_0x108ec8];return _0x586c42;};function displayNoteTitle(_0x23cbc1){alert(_0x23cbc1[_0x7cb0('0x0')]);}var flowerNote={};flowerNote[_0x7cb0('0x0')]=_0x7cb0('0x1');displayNoteTitle(flowerNote);

测试结论:
YUI Compressor、Google Closure Compiler、UglifyJS,这几个JS工具为一类,他们主要是将JS源码进行了压缩,使代码更为小巧,如果目的是让代码体积变小,使用这几个工具是可以的。但笔者认为,混淆的目的是要让JS代码失去可读性。防止被别人分析利用,显然这几个工具并没有很好的实现这一点。
JScrambler、JShaman的混淆结果是相不错的,从上面的例子可以看到经过混淆的JS代码,变的混乱,无法阅读,真正达到了混淆的目的,使JS代码不可读化了。特别需要推荐的是JShaman,是国内的一款专业JS混淆平台,在线就可以使用,无需注册,而且可以免费试用,这一点比Jscramber做的更好,Jscramber是英文的、而且使用需要注册,使用也比较复杂,对国人使用来说,还是颇有不便。因此,在这几项当前流行的JS混淆工具中,笔者最推荐JShaman。

好了,这就是对几种当下流行、常见的JavaScript混淆工具的比较。希望能给大家帮助。

几种常见的JS混淆工具比较。相关推荐

  1. npm run buil构建后页面白屏_从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  2. 从Npm Script到Webpack,6种常见的前端构建工具对比

    从Npm Script到Webpack,6种常见的前端构建工具对比 小编说:历史上先后出现了一系列构建工具,它们各有优缺点.由于前端工程师很熟悉JavaScript,Node.js又可以胜任所有构建需 ...

  3. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  4. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  5. 几种常见的JS递归算法

    递归的概念 就是函数自己调用自己本身,或者在自己函数调用的下级函数中调用自己. 递归的步骤 假设递归函数已经写好 寻找递推关系 将递推关系的结构转换为递归体 将临界条件加入到递归体中 经典案例 1: ...

  6. qt几种常见安装包制作工具-Qt Installer Framework

    Qt Installer Framework(简称:QtIFW)概述 QtIFW提供了一组工具和实用程序,可以一次性创建安装程序,并在所有支持的桌面Qt平台上部署它们,而无需重写源代码.安装程序将在运 ...

  7. JS混淆解密技术研究与案例分析

    引言 在现代互联网的世界中,JavaScript (JS) 已成为最为流行和广泛使用的编程语言之一.JS 的开发人员使用它来构建各种 Web 应用程序,包括网站.应用和游戏等.然而,随着 JS 应用程 ...

  8. 常见的版本控制管理工具

    常见的版本控制管理工具 出处:http://blog.sina.com.cn/s/blog_5f0e9ca50102v63c.html 配置管理工具是配置管理相关理论的实践载体,工具的功能范围在某种程 ...

  9. android js 代码混淆工具,好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版

    好用的JS(Javascript)混淆加密工具-HDS JSObfuscator 2.14版 书法字体2017.06.23css压缩 分享一款好用的JS混淆加密工具:HDS JSObfuscator ...

  10. TypeScript与Haxe:两种截然不同的JS转译工具横向对比

    转自:TypeScript与Haxe:两种截然不同的JS转译工具横向对比 JavaScript无疑是当今最火爆的编程语言之一,它的崛起要归功于AJAX.Node.js的出现以及时下各种MVC框架的流行 ...

最新文章

  1. centos升级python_CentOS 升级Python3
  2. 皮一皮:这解释...没毛病!
  3. 网站SEO优化需要注意哪些细节事项?
  4. python怎么画简单图片-初学Python-简单的在图片上加文字
  5. Python获取当前目录下所有文件的绝对路径并存储在文件中
  6. python django admin.site.register注册应用
  7. Web的新图像格式WebP
  8. java 转换成maven项目_java – 将现有项目转换为maven项目
  9. 最新emoji表情代码大全_抖音不用考虑我我没感受铁打的图片,最新表情包高清大全[多图]-软件教程...
  10. Esp8266+ssd1306液晶屏+microPython
  11. 解决mac系统压缩文件.zip,在win解压后,出现乱码
  12. 微信网页video播放视频不全屏的解决方法
  13. EditText实现输入自定义表情
  14. windows10的etc路径下没有hosts文件
  15. 用python做梦幻手游刷宝图脚本
  16. 小波奇异点检测C语言,matlab小波变换对奇异点的检测
  17. mysql order by file_深聊MySQL,从入门到入坟之:如何让order by、group by查询速度飞起来...
  18. 科技新品 | 富士胶片研发出全球最大容量数据流磁带;iGame发布内存新品“古德白”...
  19. 上传并下载excel表格
  20. 如何强制修改电脑密码

热门文章

  1. JS简单实现图片上一张下一张操作
  2. UNITY3d在移动设备上的一些优化实战(一)-概述
  3. 技术图文:基于“科比投篮”数据集学Pandas
  4. Cheat Engine(CE)教程
  5. QXDM工具使用说明
  6. web前端进阶架构师之路
  7. java中级考试_Java中级开发工程师笔试题及答案2016
  8. vue3中json编辑器
  9. 谷歌翻译用不了解决办法
  10. 史上最全Nginx面试题及答案