PHP和Javascript之间的加密/解密


Encryption/Decryption between PHP and Javascript

我希望扩展到这个问题之外:混淆Javascript &PHP

我想到了这个解决方案:http://pastebin.com/YuAAZTLi

95%的时间它是工作的,但我不能真正处理的5%。很难真正基于两个不同服务器的时间。而发送带有变量的rot太容易被破解了。

我需要改变的东西,每一次希望,因为我不希望HTTP POST请求只是被复制。哪些加密方法可以在javascript和PHP之间互换,允许md5类型的加密。其中

4500看起来像Dusfh7sfSFJf78dfns8,而4501看起来像JF7Fhene7fdHfdshf6d。没有任何相似之处,即使它们都是1位。

外部库是允许的,但请确保您链接了php和javascript的对应物

这有点特定于处理用户登录的情况,但我在这个回答中提出了一个协议,询问者使用它并编写了一个抗http嗅探器的PHP-to-JavaScript登录表单实现。

方案要点:

  • 生成随机数;这有助于防止重放攻击。
  • 将nonce值和密码发送到浏览器与登录表单的其余部分一起。
    • 您正在salt中存储密码哈希形式,对吧?
  • 当用户输入密码时,让表单上的脚本进行计算并返回hash(hash(password, salt), nonce)。
  • 当服务器接收到表单提交时,让它计算哈希值(storedSaltedPassword, nonce)并验证它是否等于提交的价值。
    • 保留当前值at服务器;不要相信客户会这么做把它反馈给你,或者你的回放

这个方案的缺点是数据库中的密码散列在某种意义上相当于密码;虽然这可能是不可行的提取原始密码用于产生那些哈希值,知识的存储的哈希值足以在您的站点上模拟用户。

就使用SSL吧。几乎所有东西都支持它,而且安全问题已经得到了广泛的解决。设置有点棘手,但有大量关于如何做到这一点的信息;甚至连证书都不再那么贵了