我想做一个JavaScript应用程序,不是开源的,因此我希望学习如何可以混淆我的JS代码?这可能吗?
当前回答
Dean Edward's Packer是一个很好的混淆器,尽管它主要是混淆代码,而不是代码中可能存在的任何字符串元素。
参见:在线Javascript压缩工具,并从下拉菜单中选择Packer (Dean Edwards)
其他回答
我可以推荐Patrick J. O'Neil的JavaScript Utility。它可以模糊/紧凑和压缩,它似乎很擅长这些。也就是说,我从未尝试将它集成到任何类型的构建脚本中。
至于混淆和缩小,我不太喜欢前者。它使调试不可能(错误在第一行…“等等,只有一行”),而且他们总是要花时间打开行李。但如果你需要…好。
混淆永远不会真正起作用。对于任何真正想要获取您代码的人来说,这只是一个减速带。更糟糕的是,它使您的用户无法修复错误(并将修复文件发送给您),并且使您更难在该领域诊断问题。这是浪费你的时间和金钱。
和律师谈谈知识产权法以及你的法律选择。“开源”并不意味着“人们可以阅读源代码”。相反,开源是一种特定的许可模型,允许自由使用和修改您的代码。如果您不授予这样的许可证,那么复制您的代码的人就是违法的,(在世界上大多数地区)您可以通过法律手段阻止他们。
真正能保护代码的唯一方法是不发布它。将重要的代码移到服务器端,并让公共Javascript代码对其进行Ajax调用。
点击这里查看我关于混淆器的完整回答。
Dean Edward's Packer是一个很好的混淆器,尽管它主要是混淆代码,而不是代码中可能存在的任何字符串元素。
参见:在线Javascript压缩工具,并从下拉菜单中选择Packer (Dean Edwards)
JScrambler试试。最近我试了一下,印象深刻。 它为那些不太关心细节,只想快速完成的人提供了一组模板,用于混淆预定义的设置。您还可以通过选择任何您想要的转换/技术来创建自定义混淆。
你绝对应该考虑一下Obfuscriptor。
我超越了我们从其他工具(如YUI Compressor或谷歌Closure)中看到的典型Javascript缩小技巧。
经过模糊处理的代码看起来更像是加密的。不像我以前见过的任何东西。
推荐文章
- 如何阻止恶意代码欺骗“Origin”报头来利用CORS?
- Angular JS:当我们已经有了具有作用域的指令控制器时,指令的link函数还需要什么?
- 我如何在JavaScript中转换对象数组为一个对象?
- 为什么MongoDB Java驱动在条件中使用随机数生成器?
- 如何让一个按钮将我的页面重定向到另一个页面?
- 如何让元素被点击(对于整个文档)?
- 我如何检查如果一个变量是JavaScript字符串?
- 如何检测如果多个键被按下一次使用JavaScript?
- 如何通过history. pushstate获得历史变化的通知?
- 使用jQuery改变输入字段的类型
- 在JavaScript中,什么相当于Java的Thread.sleep() ?
- 使用jQuery以像素为整数填充或边距值
- 检查是否选择了jQuery选项,如果没有选择默认值
- Next.js React应用中没有定义Window
- 如何重置笑话模拟函数调用计数之前,每次测试