sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag dekryptera en hash för lösenord i PHP?

Bcrypt är en enkelriktad hashalgoritm, du kan inte dekryptera hash. Använd password_verify för att kontrollera om ett lösenord matchar den lagrade hashen:

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

I ditt fall, kör SQL-frågan med endast användarnamnet:

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

Och gör lösenordsvalideringen i PHP med en kod som liknar exemplet ovan.

Sättet du konstruerar frågan är mycket farligt. Om du inte parametriserar indata ordentligt kommer koden att vara sårbar för SQL-injektionsattacker. Se det här Stack Overflow-svaret om hur man förhindrar SQL-injektion.



  1. MySQL AUTO_INCREMENT rullar inte tillbaka

  2. Tips för att lagra PostgreSQL-säkerhetskopior på Google Cloud (GCP)

  3. DEGREES() Exempel i SQL Server

  4. Beräkna InnoDB buffertpoolstorlek för din MySQL-server