1

私の質問は、フグに関して、crypt から取得するのと同じ結果を mcrypt から取得するにはどうすればよいですか?

パスワードのハッシュと検証に phpass フレームワークを使用したいと考えています。フグが に含まれているため、PHP 5.3 を使用している限り、これは非常にうまく機能しますcrypt()。私のホストは mcrypt ライブラリで PHP 5.2.x を実行しています。

ドキュメントを調べてクリプトでフグについてグーグルすると、結果は'$a2$'、2文字の反復値、'$'ソルト(パディングまたは22文字にカット)、ハッシュを表す32 base64文字列のようです。

MCRYPT_MODE_modenames私の問題は、私にとって意味のある の説明が見つからないことです。そして、必要な反復回数をどのようにフィードmcrypt()しますか? それとも、クロストランスレートしない異なる形式のフグを使用する 2 つの関数ですか?

4

1 に答える 1

4

Mcrypt と crypt() は 2 つのまったく異なる関数です。Mcrypt は双方向の暗号化ですが、crypt は一方向の暗号化です。私の知る限り、crypt() は php 5.2 の中にあります。また、私があなたなら、crypt() 自体を参照するだけです。そして、そこから bcrypt も使用します。

 $hashed_password=crypt($password_to_be_hashed,'$2a$04$saltstringhere');

最後に、$2a$ の後の 2 桁内の 2 桁のコスト ファクターを変更します。これにより、必要な cputime の量を変更できます。対数的に増加することを覚えておいてください(私の記憶が正しければ)。デフォルト値は 07 です。

最後に、crypt_blowfish は、最大 448 ビットの鍵を取る、blowfish の双方向暗号化アルゴリズムです。crypt 内のフグは bcrypt であり、フグに基づいていますが、パスワードをハッシュして保存するように設計されています。これは一方向暗号化と呼ばれます。

于 2011-07-16T12:26:42.170 に答える