要求登录表单提交请求的时候密码要加密,特来向大佬们请教 Laravel 中有没有什么骚操作能华丽地完成这件事?

file

现在项目有一个要求,合作方要求登录表单在提交请求的时候,密码需要经过加密不能为明文,请求是基于表单提交,不涉及 JS。

开始以为他们只是不为明文就好,于是 base64 了一下,后来再次进行安全扫描,并再次指出这是一个安全漏洞,要求调整。

强调一下现在的情况:

  1. HTTPS 不可以,原因就不多说了,不然很想骂人。
  2. 没有必要这种,您就歇歇,咱不是来讨论这件事有没有必要的,咱是来解决问题的。

我的思路

用提交前把密码 md5 一下,其实 md5 严格上来说并不是什么加密方式而且也不是十分安全,不过可以达到不是明文的目的。登录的时候,后台代码接收到请求后,把密码生成的步骤里添加一步:先把明文密码 MD5 ,然后再 Hash。

不过感觉这种方式好像不是很优雅,特此来向各位大佬们请教,求涨姿势!

小时候,幸福是一件很简单的事;长大了,简单是一件很幸福的事。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

首先说结论:在你的限制条件下没有骚操作。

在限制条件之外,骚操作就是走 https。

不能走 在客户端加密 -> 在服务端解密 这种操作。因为客户端是明文的,任何对称加密算法都能被破解。

然后,MD4/MD5之类的算法你又嫌不给力,估计SHA1你也看不上,那就走SHA2或者SHA3,带上用户名,再撒个盐,几个算法轮一遍。

要是还看不中,那就掏出 RSA。

5年前 评论
讨论数量: 3
leo

这个需求是避免明文泄露,md5 足够了

5年前 评论

可以md5()+salt一起使用

5年前 评论

首先说结论:在你的限制条件下没有骚操作。

在限制条件之外,骚操作就是走 https。

不能走 在客户端加密 -> 在服务端解密 这种操作。因为客户端是明文的,任何对称加密算法都能被破解。

然后,MD4/MD5之类的算法你又嫌不给力,估计SHA1你也看不上,那就走SHA2或者SHA3,带上用户名,再撒个盐,几个算法轮一遍。

要是还看不中,那就掏出 RSA。

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!