2

ここの初心者。アカウントを作成した後、SHA-256 を使用してユーザー パスワードを暗号化しようとしています。ユーザーがログインしようとすると、入力を mysql データベース内の暗号化されたパスワードと照合しようとします。誰かがサンプルコードを教えてくれるかどうか疑問に思っていましたか?

4

2 に答える 2

6

ハッシュは一方向に機能するため、ハッシュしたものを実際に「取得」することはできません。

登録時にパスワードを保存するときは、次のようなものを使用します。

$hash=hash('sha256', $password);

データベースにのみ保存$hashします。ユーザーがログインしようとすると、使用しようとしているパスワードをハッシュし、データベース内のパスワードと比較します (ハッシュは、同じ入力に対して常に同じ結果をもたらします)。それらが同じ場合、彼はログインできます (すべての追加チェックが満たされた場合)。

ユーザーが忘れたパスを回復できるようにしたい場合は、この以前の質問を参照してください。

また、パスワードをハッシュする際のベスト プラクティスは、この質問の範囲外ですが、何らかの種類の を使用することですがsalt、Google で検索してください。

于 2011-04-19T06:55:42.953 に答える
0

PHP >= 5.5 を使用している場合はpassword_hash()、パスワードの保存とpassword_verify()確認に使用する必要があります。PHP >= 5.3 を使用している場合は、この互換性モジュールを使用する必要があります。以前のバージョンの PHP を使用している場合は、アップグレードする必要があります。

独自のパスワード ハッシュをロールしないでください。これを十分に強調することはありません。John the Ripperを見て、暗号化ハッシュのみでハッシュ化された (高速になるように設計された) パスワードがどれほど高速にクラックできるかを確認してください。

于 2014-08-15T16:34:27.070 に答える