Mysql
 sql >> Database >  >> RDS >> Mysql

password_hash, password_verify, MySQL incomprensione?

Non è possibile eseguire l'hashing dell'input e quindi eseguire una query su quello nel database, poiché l'hash utilizzerà ogni volta un salt casuale diverso. Quindi potresti eseguire l'hashing della stessa password mille volte e ottenere 1000 risultati diversi.

Devi semplicemente interrogare il DB per il record relativo al nome utente, quindi confrontare l'hash della password restituito dal DB con la password di input usando password_verify() .

Inoltre, quando si scrive inizialmente l'hash nel DB durante la creazione della password (usando password_hash() ) non è necessario sfuggire all'hash. password_hash() non viene utilizzato affatto nel processo di verifica della password.