【问题标题】:Encrypt password in ajax request and decrypt in laravel controller (.php) [closed]在ajax请求中加密密码并在laravel控制器(.php)中解密[关闭]
【发布时间】:2016-01-30 14:25:00
【问题描述】:

正如标题所说,我如何在通过ajax将密码发送到服务器之前加密密码,然后在php中解密(因为JS在客户端运行,而php在服务器端运行,我不知道如何使用相同的场景/算法加密和解密)?目前我正在使用 laravel 作为框架。有人说我应该使用https,但我想避免使用这个。

感谢任何链接或教程。

【问题讨论】:

  • 只是出于好奇,你为什么要避开https?并成为话题,也许这可以帮助stackoverflow.com/questions/5724650/…
  • 我不太确定这一点,但我的教授(互联网协议专家)说 https 使用起来非常繁重(不是很难使用或实施)
  • https 确实会产生一些开销,但是如果您不热衷于优化请求的每一毫秒,那么最好使用它。例如,Facebook 通过https 加载所有内容。它会处理数百个请求。想想看。
  • @YudiChang 你的教授听起来像个知识渊博的人。有一个非常轻微的 SSL 开销,HTTPS 可能比 HTTP 稍微慢一些,但你不会注意到。此外,您可以调整 HTTPS 以获得更好的性能。
  • 如果你假设一个活跃的攻击者,那么你不能在没有 TLS (https) 的情况下做到这一点。

标签: javascript php ajax laravel encryption


【解决方案1】:

您在客户端进行的任何加密都不会是安全的,因为用于加密的代码很容易被看到。

为什么要避免使用 https?根据定义,它将发送加密的数据。

【讨论】:

  • 我将重复我在上面发布的评论“我不太确定这一点,但我的教授(互联网协议专家)说 https 使用起来非常繁重(不是硬使用或实施)”
  • 使用起来很重?他什么意思?我会请他修饰他的陈述。
【解决方案2】:

我更喜欢 rsa 加密。

使用 Javascript 使用公共 rsa 密钥加密您的密码并将字符串发送到服务器。

你可以使用这个库来加密: https://github.com/travist/jsencrypt

用你的 RSA 私钥和 php 解密它:

Encrypt and Decrypt text with RSA in PHPIntegrate phpseclib into Laravel 5

【讨论】:

    【解决方案3】:

    javascript 的 base64 btoa(string) 将帮助对密码进行编码,在 laravel 中可以使用 base64_decode($string) 解密

    【讨论】:

      【解决方案4】:

      编写服务器应用程序有一个简单的规则:永远不要相信用户数据。同样的客户端验证。

      了解基本 JavaScript 的用户可以输入恶意数据并侵入您的应用程序。

      您可以考虑以下公钥密码学 js 库

      pidCrypt

      https://github.com/ncb000gt/node.bcrypt.js/

      请记住,如果您不使用 SSL,您可能容易受到攻击。

      希望这有帮助。

      【讨论】:

        猜你喜欢
        • 2012-01-10
        • 2011-09-29
        • 1970-01-01
        • 2016-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-13
        相关资源
        最近更新 更多