ホームページ > バックエンド開発 > PHPチュートリアル > PHP 5.5 の「password_hash」関数と「password_verify」関数はどのようにしてパスワード管理を保護できるのでしょうか?

PHP 5.5 の「password_hash」関数と「password_verify」関数はどのようにしてパスワード管理を保護できるのでしょうか?

Mary-Kate Olsen
リリース: 2024-12-17 16:11:17
オリジナル
342 人が閲覧しました

How Can PHP 5.5's `password_hash` and `password_verify` Functions Secure Password Management?

安全なパスワード管理のための PHP 5.5 のパスワード ハッシュ関数の使用

最新の Web アプリケーションでは、ユーザー パスワードの保護は非常に重要です。 PHP 5.5 では、パスワードのセキュリティを強化するために password_hash 関数と password_verify 関数が導入されました。これらの関数を適切に実装すると、パスワードが安全に保存され、効率的に検証されるようになります。

パスワード ハッシュ: パスワードを安全に保存する

password_hash 関数は、暗号化アルゴリズム (通常は bcrypt) を使用した、指定されたパスワードの安全なハッシュ。このハッシュはプレーン テキストのパスワードの代わりにデータベースに保存されるため、攻撃者が機密情報を取得することが困難になります。最適なセキュリティを実現するために、この関数はハッシュの生成に必要な計算量を決定する cost パラメーターを受け入れます。

誤: ソルトのみを保存する

提供された例では、コードはソルトのみを取得しますが、パスワード検証には不十分です。ハッシュとソルトは両方ともデータベースに一緒に保存する必要があります。

正解: ハッシュとソルトの両方を保存する

正しいアプローチは、次を使用してハッシュとソルトの両方を保存することです。パスワードハッシュ関数:

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database
ログイン後にコピー

パスワード検証: 検証中資格情報

ログイン時にユーザーのパスワードを確認するには、password_verify 関数が使用されます。提供されたパスワードを保存されているハッシュおよびソルトと比較し、一致する場合は true を返し、一致しない場合は false を返します。

// Fetch hash+salt from database
// and then to verify $password:
if (password_verify($password, $hashAndSalt)) {
   // Verified
}
ログイン後にコピー

password_hash とpassword_verify を利用することで、開発者は PHP アプリケーションに安全なパスワード管理を実装できます。データベースとのやり取りに mysqli を使用し、SQL インジェクションの脆弱性を防ぐなど、セキュリティのベスト プラクティスに必ず従うようにしてください。

以上がPHP 5.5 の「password_hash」関数と「password_verify」関数はどのようにしてパスワード管理を保護できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート