gpt4 book ai didi

php - 安全地发送纯文本密码?

转载 作者:可可西里 更新时间:2023-10-31 23:06:55 24 4
gpt4 key购买 nike

我正在为 iOS 开发一个应用程序,它会让用户填写他们的密码。然后使用 POST 或 GET 将密码发布到我网站上的 PHP 页面。 (它必须是明文,因为它在脚本中使用。)

除了HTTPS,还有什么方法可以保护密码吗?在 Obj-C 中加密,然后在 PHP 中解密?

注意:不会发送用户名...只有密码会发送到服务器。

编辑:需要澄清的是,David Stratton 是正确的...我试图防止公共(public)场所的恶意嗅探器在明文密码发布到服务器时简单地读取它们。

最佳答案

挑战响应大纲

假设您有单向散列函数 abc(实际上使用 md5sha1 加密用于 PHP 的强哈希算法请参阅:password_hash)。

你在数据库中存储的密码是abc(password + salt)(salt分开存储)

服务器生成随机挑战challenge并将其发送给客户端(使用salt)并计算预期响应:abc(challenge + abc(密码+盐))

然后客户端计算:abc(user_password + salt)并应用challenge得到abc(challenge + abc(user_password + salt)),即发送到服务器,服务器可以轻松验证有效性。

这是安全的,因为:

  • 密码永远不会以明文形式发送,也不会以明文形式存储
  • 每次发送的散列值都会改变(减轻重放攻击)

有一些问题:

你怎么知道要送什么盐?好吧,我从来没有真正找到解决这个问题的方法,但是使用确定性算法将用户名变成盐可以解决这个问题。如果算法不是确定性的,攻击者可能会找出哪些用户名存在,哪些不存在。不过,这确实需要您拥有用户名。或者,您可以只使用静态盐,但我对密码学的了解还不够多,无法评估该实现的质量。

关于php - 安全地发送纯文本密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com