2010-11-20 126 views
0

问题: 我需要PHP中使用一个密钥来加密随后的JavaScript解密使用相同的密钥加密在PHP然后在javascript解密使用相同的密钥

原因: 想在我的Adobe AIR应用程序加密我的javascript的99% 。

我到目前为止是这样的:在程序第一次运行购买和下载后,客户端向服务器发送其MAC地址。然后php使用mac地址来加密一个txt文件,这个文件实际上是一个包含所有javscript的html文件(基本上是程序的其余部分),然后存储在客户端。不需要进一步的互联网连接来运行该程序。在每次启动时,未加密的javascript将使用mac地址对存储的文件进行解码,然后通过htmlLoader.loadString的方式显示它,这样发布的程序的每个副本将仅与其机器和该机器相连。不会在其他机器上打开。我知道它的可破解性,但它对我来说足够了。除加密方法外,所有测试和工作都是如此。

我已经找到了在javascript和php中加密/解密但没有密钥的方法。关键是关键...

非常感谢提前。

+0

有可能是一些有用的东西:http://phpjs.org – 2010-11-20 03:51:56

回答

0

你会爱上RSA:http://en.wikipedia.org/wiki/RSA

Google快速搜索也产生了一个与您的问题几乎完全相同的问题:http://www.sematopia.com/2008/10/rsa-encrypting-in-javascript-and-decrypting-in-php/

基本上,你想要做东西从MAC地址派生一个公钥,因为它是唯一的共享信息。然而,这很容易破解(所有攻击者需要的是客户端的MAC地址,如果他们使用WiFi,这个地址很容易获得,并且地址几乎是静态的)。

+0

看着你发布的链接,看起来像我需要从PHP到JavaScript的反向,对于比密码更大的文本块。另外我不需要公钥/私钥,只需要一个密钥。我想我可以让它在两者之间的逻辑差异。我甚至不需要创建密钥,只需使用mac地址即可。 – jason 2010-11-20 05:01:00

+2

这是不对称加密的不恰当使用 – rook 2010-11-20 18:25:03

0

不仅仅是'a'键,它将是该文件的唯一关键。这是一个离线程序,每个下载都是为该计算机加密的。是的,拥有该程序有效副本的攻击者可以提取信息。如果在另一台计算机上存在无效副本,则该mac地址将不起作用。这不是为了在下载过程中保护,而是让非代码阅读用户无法将程序复制到另一台计算机上,这对于该项目来说是足够安全的。没有人试图保护我们在这些论坛上提供建议的同一个人的计划。如果提取信息并重写代码以运行它,它将很快过时。在程序更新时,使用相同的方法,给定的MAC地址将被验证服务器端,只允许2个完全相同的更新。但感谢您的RSA的信息,我即将尝试它