Apache 使用.htpasswd进行http摘要身份验证

Apache 使用.htpasswd进行http摘要身份验证,apache,http-authentication,Apache,Http Authentication,我正在windows上工作,目前我使用以下.htaccess文件进行Http基本身份验证: AuthName "Restricted Area" AuthType Basic AuthUserFile D:\\some\\windows\\path/.htpasswd require valid-user 以及用户“test”的以下.htpasswd文件,密码为“test”(使用创建): 这样,我就可以输入正确的用户名和密码,并获得访问权限 但由于我没有使用SSL,所以我希望使用摘要身份验

我正在windows上工作,目前我使用以下.htaccess文件进行Http基本身份验证:

AuthName "Restricted Area" 
AuthType Basic
AuthUserFile D:\\some\\windows\\path/.htpasswd 
require valid-user
以及用户“test”的以下.htpasswd文件,密码为“test”(使用创建):

这样,我就可以输入正确的用户名和密码,并获得访问权限

但由于我没有使用SSL,所以我希望使用摘要身份验证(以避免将明文密码发送到服务器)。我将行
AuthType Basic
更改为
AuthType Digest
,但它不再工作了-即使我键入了正确的用户并通过了,我也无法获得访问权限


可能我应该使用不同的算法在.htpasswd中加密/散列密码,但我找不到它…

如果要使用摘要身份验证,则必须创建新的密码文件。摘要auth的格式与基本auth的格式略有不同。通常情况下,apache附带了用于执行此操作的工具

注意命令行程序“htpasswd.exe”和“htdigest.exe”。您需要使用第二个为摘要身份验证生成密码文件。像这样使用它:

c:\path\to\htdigest.exe-c:\some\windows\path.htpasswd\u digest域用户名

第一次发出命令时只需要“-c”,如果只向现有文件添加新用户,则如下所示:

c:\path\to\htdigest.exe c:\some\windows\path.htpasswd\u摘要域另一个\u用户名

“realm”应该与您在apache配置中为AuthName使用的值相同

哦,显然,别忘了在apache配置中更新AuthUserFile

test:$apr1$EUhLJ8Ye$LpBIbzDcBXY.80pH53oN2/