如何在.htpasswd文件中使用md5密码


How can I use md5 passwords in .htpasswd file?

Hi我正在尝试设置.htaccess.htpasswd文件,以查看用户是否可以访问特定目录。当新用户注册时,他们的密码会用PHP md5()函数加密,然后与其他登录信息一起存储在数据库中。我想将他们的一些加密密码动态添加到我的.htpasswd文件中,以便他们可以进入子成员部分。我遇到了麻烦,因为.htpasswd文件可以使用crypt()函数加密的密码,但我不知道如何使用他们的md5加密密码。

文档说明:

htpasswd使用为Apache或系统的crypt()例程。htpasswd管理的文件可能包含两种类型的密码;某些用户记录可能具有MD5加密密码,而同一文件中的其他密码可能具有使用crypt()加密的密码。

我认为您可以使用htpasswd-m参数明确指定apache在htpasswd文件中使用md5s作为密码

如果你不想要或不能使用htpasswd工具,你可以从PHP:创建基于crypt()的密码

$clearTextPassword = 'some password';
$password = crypt($clearTextPassword, base64_encode($clearTextPassword));

"我认为您可以使用htpasswd的-m参数显式指定apache在htpasswd文件中使用md5s作为密码"

我刚刚在Ubuntu 12.04和更新版本中发现了完全相反的情况,它默认为md5,你必须使用-d标志才能使用Crypt。其他地方也可能是这样,我似乎找不到htpasswd的版本号。