我可以在摘要身份验证中使用已经 MD5 编码的密码吗

Posted

技术标签:

【中文标题】我可以在摘要身份验证中使用已经 MD5 编码的密码吗【英文标题】:Can I use an already MD5 encoded password in Digest Authentication 【发布时间】:2010-11-18 10:36:12 【问题描述】:

我在一个数据库中有密码的 MD5 哈希值,我想将其用于 HTTP AUTH DIGEST。但是在阅读文档时,看起来摘要哈希包含用户名、领域和明文密码的哈希。在这种情况下,有没有办法使用密码的 MD5 哈希?

【问题讨论】:

【参考方案1】:

没有。如果他们需要的哈希是这样生成的:

MD5(用户名+领域+密码)

你运气不好。

如果他们像这样散列密码:

MD5(MD5(密码)+用户名+领域)

您只需使用散列密码即可执行此操作。但听起来好像不是这样。

【讨论】:

【参考方案2】:

不,您必须在表中存储 Digest 的 HA1 哈希并将其用于其他类型的身份验证(表单和基本)。见这里:Storing password in tables and Digest authentication

【讨论】:

这应该被接受为最佳答案。您可以并且应该存储密码的散列版本(而不是纯文本)。但是您必须将其与此答案中所述的用户名和领域一起散列。【参考方案3】:

不,这是不可能的。摘要式身份验证的全部目的是避免重放攻击,即有人只有(某些身份验证数据的)散列版本而不是真实数据。

它不仅是用户名、真实密码和明文密码的哈希值,还是一个随机数,每次都会改变。所以你真的需要明文密码。

【讨论】:

【参考方案4】:

没有。在摘要式身份验证中,密码使用挑战进行哈希处理,无法使其与另一个哈希一起使用。

基于 HTTPS 的基本身份验证更安全,它应该与您的散列密码一起使用。

【讨论】:

以上是关于我可以在摘要身份验证中使用已经 MD5 编码的密码吗的主要内容,如果未能解决你的问题,请参考以下文章

服务器首先是如何获得密码的?预(摘要式身份验证)注册

XMPPFramework Facebook 登录摘要-md5

如何在 Golang 中使用摘要身份验证进行 HTTP POST?

自定义摘要身份验证

为啥在 AWS Redshift 中对密码进行 md5 哈希处理时密码身份验证失败?

使用 IIS 7 摘要式身份验证密码保护目录