我可以加密javascript文件并仍在客户端上运行吗?

时间:2011-12-07 23:22:13

标签: php javascript jquery encryption

我有一个客户,他们有一个他们想要加密的javascript文件。我的想法是,我可以为未加密的文档创建一个php上传表单,然后它处理并向客户端提供加密文档。是否有可能对代码加密,以便它仍然可以工作但不能撤消?

3 个答案:

答案 0 :(得分:6)

基本上,如果您的代码正常工作,它将被浏览器解释(并且可以看到......至少部分)。

你最好的选择是obfuscate your code

在旁注中,您可以尝试Jake所说的并简单地将所有* .js请求重定向到php页面(使用.htaccess),其中:
     1. fopen的文件,
     2.将其读入字符串,
     3.编码字符串,
     4.然后返回。
虽然这要求客户端具有加密字符串的密钥。一旦有人解密js(运行它),他们就可以窃取它......

答案 1 :(得分:3)

不,这是不可能的:浏览器无法运行没有解密密钥的加密废话。您必须为浏览器提供它理解的有效代码 - 通过发送未加密的代码,或者发送加密代码解密密钥代码来进行解密 - 以及您无法阻止用户访问其浏览器正在运行的代码。

然而,您可以对代码进行模糊处理,以使某些人在仍然有效且可运行的情况下阅读和理解困难。有些工具可以删除所有注释并将变量重命名为无意义的名称。但是,如果有足够的时间和精力,有人仍然可以弄清楚代码的作用。

答案 2 :(得分:0)

这是一个非常疯狂的想法,但您可能要求最终用户在浏览器中输入加密密钥,用于解密代码。然后,您可以在解密的字符串上运行eval()以将代码加载到内存中。我不知道在你的情况下是否要求最终用户输入密钥是可行的,但它确实如此 - 它应该可以工作。