【发布时间】:2013-10-10 02:34:37
【问题描述】:
我正在 Rails 中实现一个 API,并希望使用 HTTP 摘要授权,因为它比基本授权更安全。如果我的密码作为单向加密哈希存储在数据库中,如何实现这一点。
【问题讨论】:
标签: ruby-on-rails security digest-authentication
我正在 Rails 中实现一个 API,并希望使用 HTTP 摘要授权,因为它比基本授权更安全。如果我的密码作为单向加密哈希存储在数据库中,如何实现这一点。
【问题讨论】:
标签: ruby-on-rails security digest-authentication
说实话?不要打扰。如果您打算通过 HTTP 使用 Digest,那么您不妨使用表单或基本身份验证。 HTTPS 是解决方案。使用 Digest 仍然是完全不安全的(它使用弱散列,并且无法防御 MitM 攻击)。
HTTPS 并不难,如果没有它,您将很难保护您的应用程序。
【讨论】:
使用存储在服务器上的哈希值进行摘要授权的唯一方法是在客户端复制哈希算法,将用户的密码转换为哈希,然后基本上成为新密码(共享密钥)。
如果您在生成哈希值时使用了盐,则需要在客户端上使用相同的盐,这可能会很困难。
正如其他人所建议的,请考虑改用 HTTPS。然后,您可以将密码以纯文本形式从客户端发送到服务器,并依靠 HTTPS 进行端到端保护。 HTTPS 提供加密和身份验证,从而关闭了循环。
【讨论】: