在 php 中加密,然后在 javascript 中使用相同的密钥解密
Posted
技术标签:
【中文标题】在 php 中加密,然后在 javascript 中使用相同的密钥解密【英文标题】:encrypt in php then decrypt in javascript with same key 【发布时间】:2010-11-20 03:10:50 【问题描述】:问题: 我需要 php 使用密钥进行加密,然后使用相同的密钥进行 javascript 解密
原因: 试图在我的 adobe air 应用程序中加密 99% 的 javascript。
到目前为止,我所拥有的是:在第一次运行程序时购买和下载后,客户端将其 mac 地址发送给服务器。然后php使用mac地址加密一个txt文件,该文件实际上是一个带有所有javscript(基本上是程序的其余部分)的html文件,然后存储在客户端。运行该程序不需要进一步的互联网连接。在每次启动时,未加密的 javascript 将使用 mac 地址解码存储的文件,然后通过 htmlLoader.loadString 显示它,这样发出的程序的每个副本都将与其机器结合,并且仅与该机器结合。不会在其他机器上打开。我知道它很容易破解,但对我来说已经足够了。除加密方法外,一切都经过测试并正常工作。
我已经找到了在 javascript 和 php 中加密/解密但没有密钥的方法。关键是关键……
非常感谢。
【问题讨论】:
可能有一些有用的东西:phpjs.org 【参考方案1】:你会喜欢 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 非常容易获得,而且地址几乎保持静态)。
【讨论】:
查看了您发布的链接,看起来我需要从 php 到 javascript 的反向操作,并且需要比密码更大的文本。我也不需要公钥/私钥,只需要一把钥匙。我想我可以让它成为两者之间的逻辑差异。我真的什至不必创建密钥,只需按原样使用mac地址即可。 这是对非对称加密的不当使用【参考方案2】:不仅仅是“a”键,它将是该文档的唯一键。这是一个离线程序,每次下载都只针对该计算机进行加密。是的,拥有程序有效副本的攻击者可以提取信息。如果它在另一台计算机上的副本无效,则 mac 地址将不起作用。这不是为了在下载时进行保护,而是为了让非读码用户无法将程序复制到另一台计算机上,这对于本项目来说已经足够安全了。试图保护程序免受我们在这些论坛上获得建议的人的攻击毫无意义。如果提取信息并重写代码以运行它,它将很快过时。在程序更新时,使用相同的方法,并且给定的 mac 地址将在服务器端进行验证,并且只允许可能有 2 个完全相同的更新。但是感谢有关 RSA 的信息,我将尝试一下
【讨论】:
以上是关于在 php 中加密,然后在 javascript 中使用相同的密钥解密的主要内容,如果未能解决你的问题,请参考以下文章
在 Javascript 中使用 Crypto-js 加密,在 PHP 中使用 mcrypt 解密?
用 Javascript 加密,用 PHP 解密,使用公钥加密
在 PHP openssl 中加密并在 javascript CryptoJS 中解密