2

多くのユーザー(100人以上)で長いhtpasswdファイルを生成しようとしています。

私の Linux サーバー上の DirectAdmin パネルは、$1$ で始まるパスワード ハッシュを含む htpasswd ファイルを生成します。

私はこのようなことを試しました:

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

私は何を間違っていますか?

4

2 に答える 2

1

これは、.htpasswd パスワードを生成する方法です...

$new_password = password_hash($old_password, PASSWORD_BCRYPT);

password_hash() は、強力な一方向ハッシュ アルゴリズムを使用して新しいパスワード ハッシュを作成します。password_hash() は crypt() と互換性があります。したがって、crypt() によって作成されたパスワード ハッシュは、password_hash() で使用できます。

現在、次のアルゴリズムがサポートされています。

PASSWORD_BCRYPT - CRYPT_BLOWFISH アルゴリズムを使用してハッシュを作成します。これにより、"$2y$" 識別子を使用して標準の crypt() 互換ハッシュが生成されます。結果は常に 60 文字の文字列、または失敗した場合は FALSE になります。サポートされているオプション:

http://php.net/manual/en/function.password-hash.php

于 2015-09-10T23:34:09.313 に答える
0

ハッシュがどのように生成されるかを正確に調べることをお勧めします。メソッドを使用してハッシュを作成した場合、DirectAdminによって生成されたものと同じように見えますか?

一般的に、私は以前にこれを使用してエントリを生成しました。

于 2012-05-08T11:19:04.100 に答える