http://php.net/manual/en/function.crypt.phpから取られたこの例を考えると
crypt('rasmuslerdorf', '$2a$07$usesomesillystringforsalt$')
まず、ハッシュ方式がBLOWFISHの場合、ソルトの長さはどのくらいにする必要がありますか?
これは、上記の例で得られる出力です。
$2a$07$usesomesillystringsaled/4C6/vYhuH1f.Z/Kwf8X.c.e0jjHay
返された文字列に、ソルト、ラウンド、および使用しているハッシュの方法が格納されることを意図していますか?この動作でハッシュ化されたパスワードを保存する場合、?で始まる文字列全体を保存し$2a
ますか?
入力したパスワードをDB内のパスワードと照合するときに、残りのハッシュからソルトを分離するものがない場合、文字列からソルトを取得するにはどうすればよいですか?
編集:なぜこの方法は、たとえばSHA512 / 256を使用するよりも安全なのですか?誰かが塩を使ったハッシュの束に辞書攻撃/ブルートフォース方式を使用した場合、パスワードをより迅速に解読できるでしょうか?