質問

ただし昨日あったので大応答となります。また私たちには何だと思いますかなりの確保にアルゴリズムです。私はこの問題をふぐ、ループを生成する塩。

を使用していbase64でエンコード文字やforループをランダムな文字列になります。またこの生成された文字列に挿入してくださいcryptとして機能していました。

なのでアンダーグラウンドふぐが少なく、PHPのdocsんでも言及されているような刺しの暗います。

の本当に不思議なことは行った場合、このコードに付けてきているので、今まで ない 失敗します。削除 のいずれか の'$2a$07$'からのforループ または からの皮機能で 断続的に 戻り暗号化された文字列になります。私の理解のふぐは暗号化された文字列 必要 まず'$2a$07$'で終わり"$'このため、連結の皮機能です。ないんですけの開始文字列のためのループ、<url> <url> <url> <url> <url> <url> <url> <url> <url> <url>をなくします。

もう明確化の実践を格納するランダム塩のどちらにも、データベース または を貯蔵し、出力の皮機能のデータベース?

昨日はありませんでしたリアルコードがスローされ、だけます。たいと思い入れの一部コードと、今日しているものは公平を確保します。れば誰でも自由に出入りできるより良いアルゴリズムにせよ、私はいつでもオープン。

$base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
$salt = '$2a$07$';

for($i=0; $i<60; $i++)
{
    $salt .= $base64[rand(0,63)];
}

return crypt('password', '$2a$07$'.$salt.'$');
役に立ちましたか?

解決

これはcrypt()嫌い+炭塩でいるようだ、と他の特殊文字の多くにも(*%など)。あなたがそれらをフィルタする場合は、すべての試み(と塩id文字列を繰り返す必要はありません)で動作するはずです。

他のヒント

私はこの質問は今事実上古代史である知っているが、Googleを検索して、それを見つけた誰の利益のために、この質問への答えでどのようにbcryptの/ EksBlowfish塩作業のかなり詳細な説明があります:

なぜ暗号/フグ二つの異なる塩と同じハッシュを生成ですか

短い答えは、CAFが言ったように、それが終了/パディング文字(NOT 0)ヌルとして[a-zA-Z0-9./]で、$で構成base64のアルファベットを使用しています。あなたはあまりにも早く、その範囲の任意の文字の外、または$を使用する場合は、いずれかの塩の全体を解釈してエラーまたはません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top