sql >> Database >  >> RDS >> Mysql

Het hashen van het wachtwoord met behulp van crypt werkt niet bij het inloggen, het geeft een onjuist wachtwoord weer

Bij registratie maak je een uniek zout aan. Dat zout is nu onderdeel van de hasj. Als je goed kijkt, zie je dat het is ingebed in het eerste deel van de hash. Om het wachtwoord te controleren, gebruikt u de salt van het vorige gehashte wachtwoord, zodat u dezelfde salt opnieuw gebruikt.

$correctPasswordHash = getPasswordFromDatabase($_POST['username']);
$hash = crypt($_POST['password'], $correctPasswordHash);

if ($correctPasswordHash === $hash) ...

Om dit gemakkelijker en onfeilbaarder te maken, gebruikt u de password_compat-bibliotheek , die dit verpakt in een eenvoudig te gebruiken API, die ook zal worden geïntegreerd in een toekomstige versie van PHP. Inspecteer de broncode voor het juiste gebruik van crypt , aangezien er enkele valkuilen zijn waar u voor moet zorgen. De bibliotheek met wachtwoord_compat gebruikt ook een aangepaste binaire vergelijking in plaats van een eenvoudige === om timingaanvallen te dwarsbomen.



  1. MySQL - Hoe u alle rijen per tabel in één query kunt tellen

  2. Een datumbereik herhalen in PL/SQL

  3. MySQL Proxy-alternatieven voor database-sharding

  4. Wat is de juiste JDBC URL-syntaxis als Oracle-wallets worden gebruikt?