我想做一个JavaScript应用程序,不是开源的,因此我希望学习如何可以混淆我的JS代码?这可能吗?
当前回答
我建议先用YUI压缩机之类的东西缩小,然后用http://www.javascriptobfuscator.com/之类的东西将所有字符串和数字转换为十六进制值
这样,代码就会变得几乎不可能被理解,我认为在这个阶段,黑客重新执行你的代码所花费的时间要比他从头重写的时间要多。重写和克隆是你无法停止的。毕竟我们是自由人!
其他回答
与大多数其他答案相反,我建议反对YUI压缩机;你应该使用谷歌闭包。
不是因为它压缩更多,但主要是因为它会捕捉javascript错误,如a = [1,2,3,];这让IE失去了控制。
我正在使用闭包编译器实用程序的java脚本混淆。它减少了代码,并为混淆提供了更多的选项。 此实用程序可在谷歌代码在以下URL: 闭包的工具
但是现在我听到很多关于UglifyJS的消息。你可以在闭包编译器和UglifyJS之间找到各种比较,其中Uglify似乎是赢家。 UglifyJS:一种可以与闭包媲美的快速Node.js压缩器
很快我就给了UglifyJS机会。
我已经使用Jasob多年了,它无疑是最好的混淆器。 它有一个高级的用户界面,但仍然直观和易于使用。 它还可以处理HTML和CSS文件。
使用它的最好方法是给所有私有变量加上下划线之类的前缀,然后使用排序功能将它们组合在一起,并将它们作为混淆的目标进行检查。
用户仍然可以查看您的源代码,但是当您的私有变量从_sUserPreferredNickName转换为。
该引擎将自动统计目标变量的数量,并优先考虑它们以获得最大的压缩。
我不是为雅各布工作,我从推销他们中得不到任何东西,只是提供一些友好的建议。 缺点是它不是免费的,而且有点贵,但与其他选择相比还是值得的——“免费”选项甚至无法相提并论。
JScrambler试试。最近我试了一下,印象深刻。 它为那些不太关心细节,只想快速完成的人提供了一组模板,用于混淆预定义的设置。您还可以通过选择任何您想要的转换/技术来创建自定义混淆。
我很惊讶没有人提到谷歌的闭包编译器。它不只是缩小/压缩,它分析找到并删除未使用的代码,并重写以最大限度地缩小。它还可以进行类型检查,并对语法错误发出警告。
JQuery最近从YUI压缩器切换到闭包编译器,并看到了“坚实的改进”
推荐文章
- 如何检测如果多个键被按下一次使用JavaScript?
- 如何通过history. pushstate获得历史变化的通知?
- 使用jQuery改变输入字段的类型
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试
- 如何强制一个功能React组件渲染?
- 在javascript中从平面数组构建树数组
- 将Dropzone.js与其他字段集成到现有的HTML表单中
- 如何在AngularJS中观察路由变化?
- JavaScript DOM删除元素
- 将dd-mm-yyyy字符串转换为日期
- Javascript复选框onChange