我尝试将 Http Authentication Digest Scheme 与基于 php(apache 模块)的网站一起使用。一般来说,它工作得很好,但是当针对我的用户数据库验证用户名/哈希时,我遇到了问题。当然我不想将用户的密码存储在我的数据库中,所以我倾向于将 A1 哈希值(即 md5($username . ':' . $realm . ':' . $password) ) D b。这就是浏览器也是如何创建散列以发送回的。
问题:
我无法检测浏览器是否在 ISO-8859-1 回退(如 firefox、IE)或 UTF-8(Opera)或其他方式中执行此操作。我选择用 UTF-8 进行计算并存储这个 md5 哈希。这会导致 Firefox 和 IE 浏览器中的非身份验证。
你怎么解决这个问题?
只是不使用此身份验证方案?或者为每个字符集存储一个 md5 哈希?
强制用户使用 Opera?
(A1 的条款参考http://php.net/manual/en/features.http-auth.php示例。)(对于摘要访问身份验证,请阅读相应的维基百科条目)