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

関数password_verifyを使用してパスワードが検証されない

    データベースでソルトされたパスワードハッシュを検索することはできません。ハッシュを計算するには、insertステートメントですでに正しく行ったpassword_hash()関数が必要です。

    // Hash a new password for storing in the database.
    // The function automatically generates a cryptographically safe salt.
    $hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);
    

    パスワードを確認するには、最初にユーザー名のみで検索する必要があります(SQLインジェクションを回避するために準備されたクエリを使用):

    $sql = 'select * from admin where username = ?';
    $db->prepare($sql);
    $db->bind_param('s', $first);
    

    最終的にデータベースから保存されたハッシュを取得したら、次のように確認できます。

    // Check if the hash of the entered login password, matches the stored hash.
    // The salt and the cost factor will be extracted from $existingHashFromDb.
    $isPasswordCorrect = password_verify($password, $existingHashFromDb);
    


    1. ORA-00904groupby句の識別子の「無効な識別子」

    2. LOCALTIMEの例– MySQL

    3. スプリングブートを取得してデータベーススキーマを自動的に作成できない

    4. DEFERRABLE INITIALLY IMMEDIATEで定義された制約はまだ延期されていますか?