如何混淆或使JavaScript文件无法读取?

如何混淆或使JavaScript文件无法读取?,javascript,jquery,obfuscation,Javascript,Jquery,Obfuscation,我的应用程序中有包含JavaScript和jQuery函数的JavaScript脚本。 所有用户与我的应用程序的交互都是动态的,它通过jQuery传递给应用程序 我意识到,当我在客户端运行应用程序时,客户端可以通过查看页面源代码(Ctrl+U)来查看我的所有源代码 如何隐藏或执行某些操作,以使用户无法理解或读取源代码 我想做一些类似Facebook的事情。通过查看Facebook源代码,用户无法重用其源代码,甚至无法理解它 我在谷歌上搜索了一下,发现这个过程叫做模糊处理,但这对我来说不起作用 我

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

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

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

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

我在谷歌上搜索了一下,发现这个过程叫做模糊处理,但这对我来说不起作用

我试过这个:

我也试过了


但是这对我没有用。

如果有人真的关心你的代码,他会承担取消缩小的工作量(用有用的变量/函数名替换random)。其他任何东西,比如“加密”或打包,都是因为它可以非常容易地恢复。因此,为自己节省一些工作,并将其用于改进应用程序

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

例如,facebook的JS文件只是被简化了,很可能是因为带宽/性能的原因


缩小JavaScript的最简单方法是使用Google的web服务:

请注意,它有1MB的限制,因此如果您的JS那么大,您可能需要下载基于Java的minifier在本地运行。

ThiefMaster说的一切都是真的。同样值得注意的是,您的应用程序的设计应该假设用户可以看到和操作客户端上的所有内容。如果您担心混淆,因为您认为它会阻止用户查看敏感数据或操纵价格等信息,那么您需要重新设计应用程序,使安全逻辑驻留在服务器上。

因为我需要缩小javascript源代码,我正在寻找一个javascript程序,它可以缩小自己的javascript代码

为什么是javascript缩微器? 因为,我正在编写一些从web服务器到客户端的随机javascript代码

我应该在web服务器上使用“node.js”来执行一个javascript程序,该程序生成一个javascript代码,并动态缩小它并将其发送给客户端

这个javascript程序是一个:加密和解密程序。客户端的javascript代码结果应该包含一个javascript函数,该函数可以对加密数据的json或十六进制版本的每个部分进行解密。该函数执行一些整数的加号、减号和乘法运算。有时,我可以生成一个条件(if、then和else)来计算两个不同的操作。 此函数用于解密两个或多个参数输入

这就是随机函数:每次客户端请求一些私有数据时,web服务器都会生成两个不同的javascript函数:一个用于加密,另一个用于解密。解密函数被发送到客户端。web服务器使用加密功能加密私有数据并将其发送到客户端。这对于混淆是有意义的:每次进程运行时,发送函数都完全不同

为了证明加密/解密是非常安全的,我为客户端添加了两个或更多参数的表格式值转换;但是,表格值实际上是由一个只为web服务器编写的函数生成的,它包含一些数值常量,这些常量永远不会发送到客户端。因此,任何想要解密的人都必须具有常量值

我被解释为这个过程是因为:

  • 您了解了一些javascript源代码中的模糊处理;但是,javascript中的模糊处理还没有被web服务器和浏览器实现……也许,它可能会发生……但是,在“SSL”的帮助下,什么样的解决方案对互联网上的所有传输有用呢

  • 可以使用可读的加密/解密函数进行加密和解密。而且,没有SSL证书的成本。甚至“中间人”也会解密加密数据;为此,他只需执行javascript函数。好的..但是假设javascript解密函数也被加密了..然后,“中间人”必须执行解密函数,然后再次解密解密的内容,这些内容是javascript函数,用于解密加密的数据

  • 想象一下,如果web服务器向客户机询问一个问题,而唯一的答案由客户机的结果计算(其结果不是通过Internet发送的)处理。。。“中间人”不可能得到答案


    看看我的想法;我正在等待任何人的评论。

    你可以看到Facebook和谷歌的所有客户端代码。它是模糊的,这意味着它更难阅读,但并非不可能。但最重要的是,你没有解释你所说的“我没用”是什么意思。这些模糊器的实际问题是什么?实际上我认为它只是缩小了。虽然这也是模糊处理,但它不是它的主要目的。@Groo:表示我尝试了模糊处理我的js文件,但在测试我的应用程序时失败了。它不会对单击事件执行任何操作。你能建议我使用哪个模糊工具来模糊我的js吗。@Bhargav:所以,它在未压缩的情况下工作,但打包后就停止工作了?几乎可以肯定,混淆不是问题所在。您的代码中可能存在一些语法错误,这些错误在运行时会被吞没,但会混淆混淆混淆器。用于检查