Start · Sprachen · PHP · Snippets · Passwort hashen und prüfen

Passwort hashen und prüfen

Krypto & Passwörter

Niemals MD5, SHA1 oder gar Klartext. password_hash nutzt bcrypt oder Argon2 mit sicherem Salt.

Code

<?php

declare(strict_types=1);

// Beim Registrieren
$hash = password_hash($plainPassword, PASSWORD_DEFAULT);
// In DB speichern

// Beim Login
$stored = fetchHashFromDb($username);

if (password_verify($input, $stored)) {
    // Optional: Hash neu berechnen wenn Cost gestiegen
    if (password_needs_rehash($stored, PASSWORD_DEFAULT)) {
        $newHash = password_hash($input, PASSWORD_DEFAULT);
        updateHashInDb($username, $newHash);
    }
    // Login erfolgreich
} else {
    // Login abgelehnt — generische Fehlermeldung
}