【发布时间】:2012-05-08 11:13:31
【问题描述】:
我正在尝试生成具有大量用户 (100+) 的长 htpasswd 文件。
我在 Linux 服务器上的 DirectAdmin 面板生成 htpasswd 文件,其中密码哈希以 $1$ 开头。
我尝试过这样的事情:
function random_salt($length = 9) // 9 characters and $1$ = 12 characters
{
$chars = 'bcdfghjklmnprstvwxzaeiou';
for ($p = 0; $p < $length; $p++)
{
$result .= ($p%2) ? $chars[mt_rand(19, 23)] : $chars[mt_rand(0, 18)];
}
return $result;
}
echo crypt($myplainpassword, "$1$".random_salt());
它产生以 $1$ 开头的哈希,但服务器不让我进入。我的密码是在 excel 中生成的 4 位随机“pin 码”。例子:
1215 5325 6261
我做错了什么?
【问题讨论】:
-
“我做错了什么?”...使用
htpasswd -
你为什么使用 $1$ 作为盐的一部分?
-
我同意 Petah 的观点 - 可能有比使用 htpasswd 更好的方法来保护资源。
-
另外,请添加有关您的设置的更多详细信息 - 我只是假设您使用的是 apache?
-
我使用 $1$ 作为 salt 的一部分,因为我在某处读到 apache 需要像这样的 md5 salt。