0

パスワードをハッシュするために bcrypt を使用しています。しかし、私はそれと一緒に塩も使いたいです。uniqid() 関数を使用して、すべてのユーザーに一意のソルトを生成できますか? または、よりエントロピーのあるものかもしれません

uniqid('', true);

私は、Salt を生成するより複雑な方法の多くを理解していません。for ループやさまざまな関数を使用するように。

ありがとうございました。

4

1 に答える 1

2

ソルトの目的は、ハッシュの照合を困難にすることです。そうは言っても、これは使用しているハッシュと、それが衝突しやすい方法に依存します。Bcrypt は非常に強力ですが、欠点もあります。

このコードは、マニュアルに従って23 文字のソルトを作成する必要があります。

printf("uniqid('', true): %s\r\n", uniqid('', true));

これにより、(256ビット)64桁が取得されます。

hash("sha256",time());

クリプトもチェックアウト。

元のパスワードを見つけるのが難しくなるため (リバース エンジニア)、SALT を使用することは常に有効です。これは、データベースに対して照合を行っている場合に、一致してアクセスを許可するハッシュ衝突を取得できないという意味ではありません。ハッシュが長く、位置ごとのキャラクターの可能性が高いほど、衝突がはるかに難しくなり、システムがより強力になります (理論上)。

于 2013-05-24T20:58:08.940 に答える