sql >> Database >  >> RDS >> Mysql

Hoe kan ik een wachtwoord-hash in PHP decoderen?

Bcrypt is een eenrichtings hash-algoritme, u kunt hashes niet decoderen. Gebruik password_verify om te controleren of een wachtwoord overeenkomt met de opgeslagen hash:

<?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.';
}

Voer in uw geval de SQL-query uit met alleen de gebruikersnaam:

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

En voer de wachtwoordvalidatie in PHP uit met een code die vergelijkbaar is met het bovenstaande voorbeeld.

De manier waarop u de query opbouwt, is erg gevaarlijk. Als u de invoer niet goed parametreert, is de code kwetsbaar voor SQL-injectieaanvallen. Zie dit Stack Overflow-antwoord over hoe u SQL-injectie kunt voorkomen.



  1. Hoe MICROSECOND() werkt in MariaDB

  2. Hoe maak ik verbinding met een SQL Server 2008-database met behulp van JDBC?

  3. MySQL en PHP:UTF-8 met Cyrillische tekens

  4. Problemen met transactionele replicatie van SQL Server