sql >> データベース >  >> RDS >> Mysql

cryptを使用してパスワードをハッシュすると、ログイン時に機能せず、誤ったパスが表示されます

    登録すると、独自のソルトが作成されます。そのソルトはハッシュの一部になりました。よく見ると、ハッシュの最初の部分に埋め込まれていることがわかります。パスワードを確認するには、以前にハッシュされたパスワードのソルトを使用して、同じソルトを再度使用します。

    $correctPasswordHash = getPasswordFromDatabase($_POST['username']);
    $hash = crypt($_POST['password'], $correctPasswordHash);
    
    if ($correctPasswordHash === $hash) ...
    

    これをより簡単で確実なものにするには、password_compatライブラリ を使用します。 、これを使いやすいAPIでラップします。これは、将来のバージョンのPHPにも統合されます。 cryptの正しい使用法についてソースコードを調べます 、あなたが世話をする必要があるいくつかの落とし穴があるので。 password_compatライブラリも、単純な===の代わりにカスタムバイナリ比較を使用しています タイミング攻撃を阻止します。



    1. PostgreSQLで月ごとの成長を計算する方法

    2. MySQLNOTINクエリが機能しない

    3. タイムスタンプに対する開始時刻と終了時刻の間のPostgreSQLマッチング間隔

    4. MySQLでクイズのデータ​​ベースを設計するためのガイド