現在の位置: ホーム> 最新記事一覧> Laravelで2つのBCRypt暗号化されたパスワードを比較する方法

Laravelで2つのBCRypt暗号化されたパスワードを比較する方法

gitbox 2025-06-12

1。はじめに

Laravelは、人気のあるPHP Web開発フレームワークです。パスワードの暗号化は、平易なテキストのパスワードを保存するとセキュリティリスクをもたらす可能性があるため、Laravel開発において一般的な要件です。 Laravelは、強力で使いやすいローカルパスワードハッシュアルゴリズム-Bcryptを提供します。この記事では、Laravelで2つのBCRypt暗号化されたパスワードを比較する方法について説明します。

2。BCRYPTハッシュアルゴリズム

Bcryptは、Blowfish暗号化アルゴリズムに基づいたパスワードハッシュアルゴリズムであり、塩とコストの値を追加することでセキュリティを強化します。 Bcryptアルゴリズムは、パスワードに塩をスプライブし、ブローフィッシュを使用して暗号化し、長さ60文字のハッシュ値を出力します。以下は、PHPを使用したpassword_hash()です

3。2つのBcryptハッシュの比較

Laravelでは、 Hash :: Check()メソッドを使用してBcrypt Hashの後、Plantext Passwordをciphertextパスワードと簡単に比較できます。 Check()メソッドは、プレーンテキストパスワードを暗号化されたパスワードと比較します。 2つが一貫している場合は、trueを返します。

if(hash :: check( 'secret'、$ hashedpassword)){
    // 2つの文字列が一貫している場合は、trueを戻るします
}
    

ここでは、 $ hashedPasswordは、データベースに保存されているbcryptハッシュ値です。

3.1。精神式

Check()メソッドを使用する場合は、最初のパラメーターがPlantextパスワードであり、2番目のパラメーターが暗号化されたハッシュパスワードであることを確認してください。次の式を覚えています。

「BPPでは、ストーブを比較してください」:最初のパラメーターはプレーンテキストパスワード(b)であり、2番目のパラメーターは暗号化されたBcryptハッシュ値(PP)です。つまり、最初のパラメーターを破ることができますが、2番目のパラメーターは安全です。

3.2。例

2つのBcryptハッシュを比較する完全な例を次に示します。

$ password = 'Secret';
$ hashedpassword = '$ 2Y $ 10 $ $ ljrd9sgr0h1ksk8vvqvcvcvcvcsqfpz1t2qkzckluxgdf9yoljxaf/6';

if(hash :: check($ password、$ hashedpassword)){
    Echo 'パスワードマッチングが成功しました! ';
} それ以外 {
    エコー 'パスワードマッチングが失敗しました! ';
}
    

Check()メソッドは、2つの文字列が等しいかどうかを比較するだけでなく、ハッシュ文字列が正しい暗号化アルゴリズムを使用し、正しくフォーマットされることを確認することに注意してください。