Skip to content
SilverPC Blog

SilverPC Blog

Tech

A bolygóméretű város: Sci-fi rémálom vagy a távoli jövőnk, ahol az egész Földet egyetlen metropolisz borítja?
  • Tech

A bolygóméretű város: Sci-fi rémálom vagy a távoli jövőnk, ahol az egész Földet egyetlen metropolisz borítja?

2025.09.27.
Brutális gyorsulás: Mennyi utat tesz meg egy autó, ha 2 másodperc alatt éri el a 100 km/órát?
  • Tech

Brutális gyorsulás: Mennyi utat tesz meg egy autó, ha 2 másodperc alatt éri el a 100 km/órát?

2025.09.27.
Az adatok mögötti struktúra: Így működik a főkomponens-elemzés a gyakorlatban
  • Tech

Az adatok mögötti struktúra: Így működik a főkomponens-elemzés a gyakorlatban

2025.09.27.
A szakzsargon útvesztőjében: Mit jelentenek a CFS, GPM, MGD mértékegységek?
  • Tech

A szakzsargon útvesztőjében: Mit jelentenek a CFS, GPM, MGD mértékegységek?

2025.09.27.
A tökéletes páros: Így hozd össze a TP-Link routert a Diginet hálózatával zökkenőmentesen
  • Tech

A tökéletes páros: Így hozd össze a TP-Link routert a Diginet hálózatával zökkenőmentesen

2025.09.27.
Tényleg megáll a tudomány? Az Epson dx 7450 és a nyomtatás színes tinta nélkül
  • Tech

Tényleg megáll a tudomány? Az Epson dx 7450 és a nyomtatás színes tinta nélkül

2025.09.27.

Express Posts List

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?
  • Német

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?

2025.09.27.
Willkommen, Überlebende und Killer, in der grausamen Welt von Dead by Daylight! Seit seiner Veröffentlichung hat sich...
Bővebben Read more about Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?
Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!
  • Német

Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!

2025.09.27.
So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!
  • Német

So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!

2025.09.27.
Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik
  • Német

Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik

2025.09.27.
Warum kostet eine gebrauchte Switch OLED in Österreich so viel mehr als in Deutschland? Eine Marktanalyse
  • Német

Warum kostet eine gebrauchte Switch OLED in Österreich so viel mehr als in Deutschland? Eine Marktanalyse

2025.09.27.
Primary Menu
  • Főoldal
  • Hírek
  • Tech
  • Hardver
  • Szoftver
  • Mobil
  • Gamer
  • Játék
  • Web
  • Tudomány
  • Egyéb
  • Német

Der Teufel im Code: Warum Ihr PHP-Passwortvergleich eine Fehlermeldung ausgibt und wie Sie es beheben

2025.08.11.

Herzlichen Glückwunsch! Sie haben eine Website mit Benutzerkonten erstellt – ein wichtiger Schritt auf dem Weg zu einer dynamischen und interaktiven Online-Präsenz. Aber was ist das? Benutzer können sich nicht einloggen? Sie haben Ihre Passwörter zehnmal überprüft, und trotzdem wird jedes Mal eine Fehlermeldung angezeigt, die besagt, dass Ihr Passwort falsch ist. Die Frustration steigt, die Haare werden dünner… keine Sorge, Sie sind nicht allein! Der Teufel steckt oft im Detail, und beim PHP-Passwortvergleich lauern einige fiese Fallen.

Die dunkle Seite des Passwort-Managements in PHP

Passwörter sind die Schlüssel zu den Königreichen Ihrer Benutzerdaten. Deshalb ist es unerlässlich, sie sicher zu behandeln. Einfach das Passwort im Klartext in der Datenbank zu speichern, ist heutzutage ein absolutes No-Go – das ist, als würde man den Haustürschlüssel unter die Fußmatte legen. Ein Einbrecher (oder in diesem Fall ein Hacker) würde sich freuen. Deshalb müssen wir Passwörter hashen. Aber auch hier lauern Tücken.

Fallstrick 1: Der naive Passwortvergleich (NICHT MACHEN!)

Der häufigste Fehler, den Anfänger (und manchmal auch erfahrene Entwickler) machen, ist ein einfacher String-Vergleich mit == oder ===. Beispiel:


$eingabe_passwort = $_POST['passwort'];
$gespeichertes_passwort = $row['passwort']; // Aus der Datenbank geladen

if ($eingabe_passwort == $gespeichertes_passwort) {
    // Login erfolgreich
} else {
    // Login fehlgeschlagen
}

Warum ist das schlecht? Weil $gespeichertes_passwort ein Hash ist, kein Klartext-Passwort. Ein Hash ist eine Einwegfunktion, die aus einem Input (dem Passwort) einen eindeutigen, festen Output erzeugt. Derselbe Input erzeugt immer denselben Output. Aber wenn man den Output (den Hash) hat, kann man den Input (das Passwort) nicht einfach rekonstruieren (zumindest nicht mit vertretbarem Aufwand). Das ist entscheidend für die Sicherheit.

Ein Klartext-Passwort mit einem Hash zu vergleichen, ist wie der Versuch, ein Steak mit einem Schraubenzieher zu schneiden – es wird einfach nicht funktionieren.

Fallstrick 2: Veraltete oder unsichere Hash-Algorithmen

Nicht alle Hash-Algorithmen sind gleich. MD5 und SHA1 waren früher mal in Mode, sind aber heutzutage aufgrund von bekannten Schwachstellen als unsicher anzusehen. Hacker können spezielle Techniken (z.B. Rainbow Tables) verwenden, um Passwörter, die mit diesen Algorithmen gehasht wurden, relativ leicht zu knacken.

  Mein PC startet erst, nachdem ich 100 mal auf den Powerknopf drücke, und friert dann ein – was ist da los?

Die Lösung: Verwenden Sie moderne und sichere Algorithmen wie bcrypt oder Argon2. Diese Algorithmen sind speziell darauf ausgelegt, das Knacken von Passwörtern zu erschweren, indem sie rechenintensive Prozesse nutzen und „Salz” verwenden (dazu gleich mehr).

Fallstrick 3: Das fehlende Salz (Salt)

Was ist ein „Salz”? Stellen Sie sich vor, Sie haben alle Passwörter mit bcrypt gehasht – super! Aber was passiert, wenn zwei Benutzer dasselbe Passwort verwenden? Sie erhalten denselben Hash! Ein Angreifer könnte jetzt ein Passwort knacken und hätte sofort Zugang zu beiden Konten.

Hier kommt das Salz ins Spiel. Ein Salz ist eine zufällige Zeichenkette, die *vor* dem Hashing an das Passwort angehängt wird. Jedes Passwort erhält ein *einzigartiges* Salz. Das bedeutet, dass selbst wenn zwei Benutzer dasselbe Passwort verwenden, ihre Hashes unterschiedlich sind. Das macht es für Angreifer viel schwieriger, Passwort-Hashes zu knacken.

Fallstrick 4: Falsche Verwendung von password_hash() und password_verify()

PHP bietet seit Version 5.5 die Funktionen password_hash() und password_verify(), die das Passwort-Management erheblich vereinfachen und sicherer machen. Aber auch hier kann man Fehler machen.

password_hash(): Diese Funktion generiert den Hash eines Passworts. Sie akzeptiert das Passwort und einen Algorithmus als Parameter (meistens PASSWORD_DEFAULT, was in der Regel bcrypt ist). Wichtig ist, dass password_hash() das Salz automatisch generiert und im Hash selbst speichert. Das bedeutet, dass Sie sich nicht mehr selbst um die Erstellung und Speicherung von Salzen kümmern müssen!


$passwort = $_POST['passwort'];
$hash = password_hash($passwort, PASSWORD_DEFAULT);

// $hash jetzt in der Datenbank speichern

password_verify(): Diese Funktion vergleicht ein Klartext-Passwort mit einem Hash. Sie akzeptiert das Klartext-Passwort und den Hash als Parameter. Wichtig ist, dass password_verify() *selbstständig* das Salz aus dem Hash extrahiert und den Hash des Klartext-Passworts mit dem gespeicherten Hash vergleicht. Sie müssen also *nicht* das Salz separat speichern oder verwalten!


$eingabe_passwort = $_POST['passwort'];
$gespeichertes_passwort = $row['passwort']; // Hash aus der Datenbank

if (password_verify($eingabe_passwort, $gespeichertes_passwort)) {
    // Login erfolgreich
} else {
    // Login fehlgeschlagen
}

Ein häufiger Fehler ist, zu versuchen, das Salz manuell aus dem Hash zu extrahieren und dann einen eigenen Hash zu generieren. Das ist unnötig und führt in der Regel zu Problemen. Überlassen Sie das password_verify()!

Fallstrick 5: Datenbankfeld zu kurz

bcrypt-Hashes (und Argon2-Hashes) sind länger als MD5- oder SHA1-Hashes. Wenn Ihr Datenbankfeld für das Passwort (z.B. VARCHAR(32)) zu kurz ist, wird der Hash abgeschnitten und ist ungültig. Stellen Sie sicher, dass Ihr Feld mindestens 60 Zeichen lang ist (besser 255, um für zukünftige Algorithmen gerüstet zu sein).

  Die Update-Welle geht weiter: Samsung rollt die Notiz Android 15 & One UI 7 weltweit für das Galaxy A35 aus

Wie man den PHP-Passwortvergleich richtig macht

  1. Verwenden Sie password_hash() zum Hashen von Passwörtern. Nutzen Sie PASSWORD_DEFAULT für den aktuellen, sichersten Algorithmus.
  2. Verwenden Sie password_verify() zum Vergleichen von Passwörtern.
  3. Speichern Sie die Hashes in einem ausreichend langen Datenbankfeld. (Mindestens 60 Zeichen, besser 255)
  4. Aktualisieren Sie regelmäßig Ihre PHP-Version. Neuere Versionen enthalten Sicherheitsverbesserungen und optimierte Algorithmen.
  5. Achten Sie auf eine sichere Serverkonfiguration. Aktivieren Sie HTTPS, um die Übertragung von Passwörtern zu verschlüsseln.

Debugging-Tipps

Wenn Ihr Passwortvergleich immer noch fehlschlägt, probieren Sie Folgendes:

  • Überprüfen Sie, ob das Passwort korrekt gehasht wurde. Speichern Sie den Hash nach der Erzeugung in einer temporären Variablen und geben Sie ihn aus (z.B. mit var_dump() oder echo). Stellen Sie sicher, dass er nicht leer ist und eine sinnvolle Länge hat.
  • Überprüfen Sie, ob das Passwort korrekt aus der Datenbank geladen wird. Verwenden Sie var_dump() oder echo, um den Wert des Feldes passwort aus der Datenbank auszugeben.
  • Verwenden Sie password_get_info(), um Informationen über den Hash abzurufen. Diese Funktion gibt Informationen wie den verwendeten Algorithmus und die Optionen zurück. Dies kann helfen, Probleme mit der Hash-Konfiguration zu identifizieren.
  • Verwenden Sie Logging. Schreiben Sie relevante Informationen (z.B. das eingegebene Passwort, den gespeicherten Hash, das Ergebnis von password_verify()) in eine Log-Datei, um den Fehler zu lokalisieren.

Fazit

Der PHP-Passwortvergleich kann eine Herausforderung sein, aber mit den richtigen Werkzeugen und dem richtigen Verständnis der Prinzipien der Passwortsicherheit ist es durchaus machbar. Indem Sie die hier beschriebenen Fallstricke vermeiden und die empfohlenen Best Practices befolgen, können Sie die Sicherheit Ihrer Website erheblich verbessern und Ihre Benutzerdaten schützen. Denken Sie daran: Passwortsicherheit ist kein optionales Feature, sondern eine absolute Notwendigkeit!

Authentifizierung bcrypt login password_hash password_verify Passwort Hash PHP Passwort Sicherheit
Auf Facebook teilen Auf X teilen Auf Messenger teilen Auf WhatsApp teilen Auf Viber teilen

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Verwandte

Die Macht in Ihren Händen: Eine Übersicht über `das beste GTA 5 enhanced Mod Menü`
  • Német

Die Macht in Ihren Händen: Eine Übersicht über `das beste GTA 5 enhanced Mod Menü`

2025.09.27.
Mehr Spielspaß garantiert: So kannst du Sims 4 anadius mods sicher einsetzen!
  • Német

Mehr Spielspaß garantiert: So kannst du Sims 4 anadius mods sicher einsetzen!

2025.09.27.
Unterwegs mit Skinbaron: So klappt das Einloggen aus dem Ausland problemlos
  • Német

Unterwegs mit Skinbaron: So klappt das Einloggen aus dem Ausland problemlos

2025.09.26.
Ohne Grund für 6 Monate in Roblox gesperrt? Diese Schritte kannst du unternehmen
  • Német

Ohne Grund für 6 Monate in Roblox gesperrt? Diese Schritte kannst du unternehmen

2025.09.26.
Wer ist der beste Sportwettanbieter? Der große Vergleichstest für maximale Gewinne!
  • Német

Wer ist der beste Sportwettanbieter? Der große Vergleichstest für maximale Gewinne!

2025.09.26.
Mehr als nur Plüsch: Ist es wirklich normal, ein Kuscheltier zu haben?
  • Német

Mehr als nur Plüsch: Ist es wirklich normal, ein Kuscheltier zu haben?

2025.09.26.

Olvastad már?

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?
  • Német

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?

2025.09.27.
Willkommen, Überlebende und Killer, in der grausamen Welt von Dead by Daylight! Seit seiner Veröffentlichung hat sich...
Bővebben Read more about Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?
Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!
  • Német

Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!

2025.09.27.
So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!
  • Német

So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!

2025.09.27.
Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik
  • Német

Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik

2025.09.27.
Warum kostet eine gebrauchte Switch OLED in Österreich so viel mehr als in Deutschland? Eine Marktanalyse
  • Német

Warum kostet eine gebrauchte Switch OLED in Österreich so viel mehr als in Deutschland? Eine Marktanalyse

2025.09.27.

Verpassen Sie das nicht

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?
  • Német

Die ultimative Rangliste: Welcher Überlebende mit den guten Perks bei DBD ist wirklich der beste?

2025.09.27.
Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!
  • Német

Die geheime Karte für Profis: Alle wichtigen GTAV POI, die du kennen musst!

2025.09.27.
So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!
  • Német

So klappt’s garantiert: Wie du dein Flashback in Third-Person rendern kannst!

2025.09.27.
Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik
  • Német

Überlebende in Dead by Daylight als Killer fallen lassen: So funktioniert die Mechanik

2025.09.27.
Copyright © 2025 SilverPC Blog | SilverPC kérdések

Az oldalon megjelenő minden cikk, kép és egyéb tartalom a SilverPC.hu tulajdonát képezi, felhasználásuk kizárólag az eredeti forrás pontos és jól látható feltüntetésével engedélyezett.