⊗ppPmAuHs 423 of 447 menu

Lösenordshashning i PHP

Att lagra lösenord i klartext är felaktigt. En hackare med ont uppsåt kan få tillgång till din databas och stjäla lösenorden.

Därför lagras vanligtvis användarnamnet i klartext, medan lösenordet hashas med en speciell funktion md5, som tar emot lösenordet som parameter och returnerar dess hash, från vilket det är omöjligt att återskapa själva lösenordet.

Låt oss till exempel hitta hashen för en sträng:

<?php echo md5('12345'); // skriver ut '827ccb0eea8a706c4c34a16891f84e7b' ?>

Nu behöver vi ändra vår registrering och vår inloggning. Till att börja med skulle jag råda er att rensa användartabellen, eftersom den för närvarande innehåller lösenord i klartext, medan den borde innehålla deras hashvärden. Sedan, när ni testar registreringen, kommer tabellen att fyllas med data i det nya formatet.

Låt oss nu korrigera vår registrering så att när en ny användare sparas till databasen läggs inte lösenordet till, utan dess hash.

Den beskrivna ändringen kommer att se ut ungefär så här:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // omvandlar lösenordet till dess hash $query = "INSERT INTO users SET login='$login', password='$password'"; ?>

Låt oss göra liknande ändringar i inloggningen:

<?php $login = $_POST['login']; $password = md5($_POST['password']); // omvandlar lösenordet till dess hash $query = "SELECT * FROM users WHERE login='$login' AND password='$password'"; ?>

Gör ändringar i registreringen med hänsyn till hashning, registrera ett par nya användare, och se till att de lades till i databasen med hashade lösenord.

Gör ändringar i inloggningen med hänsyn till hashning, försök att logga in under de tidigare registrerade användarna.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa