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

PHPでパスワードハッシュを復号化するにはどうすればよいですか?

    Bcryptは一方向のハッシュアルゴリズムであり、ハッシュを復号化することはできません。 password_verify を使用します パスワードが保存されているハッシュと一致するかどうかを確認するには:

    <?php
    // See the password_hash() example to see where this came from.
    $hash = '$2y$07$BCryptRequires22Chrcte/VlQH0piJtjXl.0t1XkA8pw9dMXTpOq';
    
    if (password_verify('rasmuslerdorf', $hash)) {
        echo 'Password is valid!';
    } else {
        echo 'Invalid password.';
    }
    

    あなたの場合、ユーザー名のみを使用してSQLクエリを実行します:

    $sql_script = 'SELECT * FROM USERS WHERE username=?';
    

    そして、上記の例と同様のコードを使用して、PHPでパスワードの検証を行います。

    クエリを作成する方法は非常に危険です。入力を適切にパラメーター化しないと、コードはSQLインジェクション攻撃に対して脆弱になります。 このStackOverflowの回答 をご覧ください SQLインジェクションを防ぐ方法について。



    1. PostgreSQLの時間のタイムスタンプの違い

    2. WHERE + KEY_Date + ='+date+'を使用したSQLiteException

    3. PHPを使用して複数のMYSQLクエリを実行する

    4. MySQLでのTO_BASE64()関数のしくみ