ここの初心者。アカウントを作成した後、SHA-256 を使用してユーザー パスワードを暗号化しようとしています。ユーザーがログインしようとすると、入力を mysql データベース内の暗号化されたパスワードと照合しようとします。誰かがサンプルコードを教えてくれるかどうか疑問に思っていましたか?
2 に答える
ハッシュは一方向に機能するため、ハッシュしたものを実際に「取得」することはできません。
登録時にパスワードを保存するときは、次のようなものを使用します。
$hash=hash('sha256', $password);
データベースにのみ保存$hash
します。ユーザーがログインしようとすると、使用しようとしているパスワードをハッシュし、データベース内のパスワードと比較します (ハッシュは、同じ入力に対して常に同じ結果をもたらします)。それらが同じ場合、彼はログインできます (すべての追加チェックが満たされた場合)。
ユーザーが忘れたパスを回復できるようにしたい場合は、この以前の質問を参照してください。
また、パスワードをハッシュする際のベスト プラクティスは、この質問の範囲外ですが、何らかの種類の を使用することですがsalt
、Google で検索してください。
PHP >= 5.5 を使用している場合はpassword_hash()
、パスワードの保存とpassword_verify()
確認に使用する必要があります。PHP >= 5.3 を使用している場合は、この互換性モジュールを使用する必要があります。以前のバージョンの PHP を使用している場合は、アップグレードする必要があります。
独自のパスワード ハッシュをロールしないでください。これを十分に強調することはありません。John the Ripperを見て、暗号化ハッシュのみでハッシュ化された (高速になるように設計された) パスワードがどれほど高速にクラックできるかを確認してください。