如何混淆或使 JavaScript 文件不可读?

2024-06-05

我的应用程序中有 JavaScript 脚本,其中包含 JavaScript 和 jQuery 函数。 所有用户与我的应用程序的交互都是动态的,并且通过 jQuery 传递到应用程序。

我意识到,当我在客户端运行我的应用程序时,客户端可以通过查看页面源代码来查看我的所有源代码(Ctrl + U).

如何隐藏或执行某些操作以使用户无法理解或阅读源代码?

我想做一些像 Facebook 那样的事情。通过查看 Facebook 源代码,用户无法重用其源代码,甚至无法理解它。

我用谷歌搜索发现这个过程称为混淆,但这对我不起作用。

我试过这个:

http://www.javascriptobfuscator.com/default.aspx http://www.javascriptobfuscator.com/default.aspx

and

http://dean.edwards.name/packer/ http://dean.edwards.name/packer/

and

http://www.daftlogic.com/projects-online-javascript-obfuscator.htm http://www.daftlogic.com/projects-online-javascript-obfuscator.htm

即使我尝试过http://www.jasob.com/ http://www.jasob.com/

但对我来说没有用。


如果有人真的关心你的代码,他会承担取消缩小的工作量(用有用的变量/函数名称替换随机)。诸如“加密”或打包之类的任何其他内容都只是蛇油 http://en.wikipedia.org/wiki/Snake_oil_%28cryptography%29因为它可以非常容易地恢复。因此,您可以节省一些工作,而将其花在使您的应用程序变得更好上。

所以:在生产系统上你应该做的唯一一件事就是缩小你的 JS 代码。这使得它更小,因此加载速度更快 - 所以这实际上是一个优势。除此之外,对于那些只是想快速浏览一下但又不想花时间的人来说,它的可读性会降低。

例如,facebook JS 文件只是被缩小了 - 很可能只是出于带宽/性能原因。


缩小 JavaScript 的最简单方法是使用 Google 的网络服务:http://closure-compiler.appspot.com/home http://closure-compiler.appspot.com/home
请注意,它有 1MB 的限制,因此如果您的 JS 太大,您可能需要下载基于 Java 的压缩器才能在本地运行它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何混淆或使 JavaScript 文件不可读? 的相关文章

  • Javascript构造函数属性有什么意义?

    试图深入研究 Javascript 对 OO 的看法 并且像许多其他人一样 遇到了关于 OO 的困惑constructor财产 特别是 其意义在于constructor财产 因为我似乎无法使其产生任何影响 例如 function Foo a
  • 没有调试适配器,无法发送“变量 VSCODE”

    在调试控制台中写道 调试器侦听 ws 127 0 0 1 55624 c4f74411 66ec 44b2 9cf6 15efb60f8611 如需帮助 请参阅 https nodejs org en docs inspector http
  • backbone.js 集合未正确删除视图中的项目

    在视图中 我在从模型内的集合中删除项目时遇到一些问题 基本上模型 集合结构如下 基本上 当我尝试从子项目视图中的子项目集合中删除项目时 它实际上会从集合中删除正确的项目 然而 当我坚持主模型时 该项目似乎仍在集合中 这就是我的观点的结构 主
  • 将隐藏的 DIV 保存为画布图像

    我使用以下代码将可见内容保存为图像 html2canvas document querySelector specific onrendered function canvas theCanvas canvas Canvas2Image s
  • 更新选择列表中的现有选项

    假设我有一个包含 3 个选项的选择列表
  • 在 Javascript 变量声明中使用逗号[重复]

    这个问题在这里已经有答案了 我刚刚遇到以下代码 function showMatch str reg var res matches while true matches reg exec str if matches null break
  • JavaScript 中的属性、键和值

    我试图澄清我对 JavaScript 领域中术语 属性 键 和 值 的理解 在阅读了几本有关该语言的书籍甚至在谷歌上搜索了这些术语之后 我仍然觉得自己不清楚它们的确切含义 所以假设我们有以下内容 var object name 5 我对以下
  • 为什么我需要使用 document.write 而不是 DOM 操作方法?

    我正在尝试一种新的广告服务 据我所知 他们没有提供加载广告的功能界面 我们希望根据用户的屏幕尺寸展示不同的广告尺寸 而该服务需要您加载不同的广告尺寸 js每种尺寸的 URL 我最初尝试写
  • Facebook Canvas:redirect_uri 不属于应用程序

    我正在尝试将 facebook canvas 集成到当前正在运行的 Web 应用程序上localhost 8080运行该网站后 它给了我这个错误 API Error Code 191 API Error Description The sp
  • Dom Object被移除后,MS Edge的总内存使用量如何持续增长?

    我在 Microsoft Edge 浏览器中遇到内存 泄漏 问题 当我运行内存分析会话并拍摄多个快照时 我看到快照之间的内存被释放 但总内存消耗不断增长 见图 快照之间的内存差异在于 iframe 被添加然后从 DOM 中删除 这怎么可能
  • 使用 contenteditable div 时隐藏移动设备上的软键盘

    我正在使用 contenteditable div 来创建由移动设备查看的页面 以获取某些内容的输入 我希望当用户按下 Enter 时隐藏软键盘 而不是在 div 中按 Enter 的正常操作 我第一次尝试让它工作看起来像这样 if eve
  • 暂停 Web Audio API 声音播放

    如何为我的音频创建暂停功能 我的下面的脚本中已经有一个播放函数 http pastebin com uRUQsgbh http pastebin com uRUQsgbh function loadSound url var request
  • 在express中设置静态javascript文件的内容类型

    我在用express使用 es6 模块提供带有 js 文件的页面 关于 es6 模块 https jakearchibald com 2017 es modules in browsers https jakearchibald com 2
  • 有没有办法在不同选项卡之间隔离“localStorage”?

    我目前正在使用 window localStorage 在浏览器上存储一些客户端数据 但我想将此存储隔离到各个选项卡 有办法实现这一点吗 你应该考虑使用会话存储 https developer mozilla org en US docs
  • 在一项服务中引用多个 API 调用 (Angular)

    我正在通过 Angular http 请求访问 API 以收集不同足球队的信息 如果我只访问一个团队 那就没问题了 我将创建一个进行调用的服务 然后在我的控制器中引用该服务函数 但是 我希望在多个团队中执行此操作 而不必为每个团队创建单独的
  • 使用 JavaScript 清理 SQL 数据

    我有一堆具有各种输入元素的表单 我想在服务器端清理这些 yes 我使用服务器端 JavaScript 将这些输入用作参数 并防止特殊字符格式错误 在你走之前 比如 这不属于 JavaScript 的领域 等等 我正在使用一个价值数百万美元的
  • Angular Component CSS 封装是如何工作的?

    我想了解如果我创建两个样式表 Style 1 heading color green Style 2 heading color blue 现在如果这两种样式写在两个不同的视图中 渲染它们的时候 在布局上作为局部视图 https jakey
  • 是否有任何 JavaScript 缩小器可以保留换行符?

    来自客户端的错误报告总是在第 1 行报告错误 因为文件已缩小 这不是很有用 我想在保留换行符的同时缩小代码 以便获得有意义的行号 有没有JavaScript缩小器 https en wikipedia org wiki Minificati
  • asp.net linkbutton onclientclick 和 postback

    当我将 ASP NET LinkBut ton 与 OnClientClick 属性一起使用时 我遇到了一些奇怪的行为 ASPX
  • 动态替换 css 文件(并将新样式应用到页面)

    我有一个页面有在加载名为 CSS 的标头中light css 我还有一个名为dark css 我想要一个按钮来交换页面的样式 css 文件中有 40 个选择器 有些在两个文件中不匹配 我怎样才能删除对light css用JS删除所有应用的样

随机推荐