Skip to content
SilverPC Blog

SilverPC Blog

Tech

A kontaktlencse és a digitális eszközök kék fénye
  • Tech

A kontaktlencse és a digitális eszközök kék fénye

2025.08.12.
Létezik kontaktlencse olvasáshoz?
  • Tech

Létezik kontaktlencse olvasáshoz?

2025.08.12.
Okos kontaktlencse: a jövő technológiája már a szemünkben van?
  • Tech

Okos kontaktlencse: a jövő technológiája már a szemünkben van?

2025.08.12.
Kontaktlencse és számítógépes munka: tippek a szemszárazság ellen
  • Tech

Kontaktlencse és számítógépes munka: tippek a szemszárazság ellen

2025.08.12.
A multifokális kontaktlencse titka: éles látás minden távolságra
  • Tech

A multifokális kontaktlencse titka: éles látás minden távolságra

2025.08.12.
Miért jobb a napi kontaktlencse, mint a havi?
  • Tech

Miért jobb a napi kontaktlencse, mint a havi?

2025.08.12.

Express Posts List

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?
  • Német

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?

2025.08.12.
In der Welt der Eventtechnik ist Präzision alles. Ob bei Konzerten, Theateraufführungen, Firmenevents oder TV-Produktionen – das...
Bővebben Read more about Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?
Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten
  • Német

Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten

2025.08.12.
Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?
  • Német

Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?

2025.08.12.
Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?
  • Német

Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?

2025.08.12.
Next-Gen-Entwicklung: Wenn Spiele 5-10 Jahre Entwicklungszeit benötigen, wird die Engine dann mitten im Projekt aktualisiert?
  • Német

Next-Gen-Entwicklung: Wenn Spiele 5-10 Jahre Entwicklungszeit benötigen, wird die Engine dann mitten im Projekt aktualisiert?

2025.08.12.
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.

  Ihr eigenes Online-Lexikon gestalten: Wie Sie bei einem Wiki Fandom den Text ändern und anpassen können

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).

  SEO-Albtraum adé: So lösen Sie Ihr **Problem mit der URL-Struktur in Shopify** endgültig

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

Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten
  • Német

Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten

2025.08.12.
Virengefahr oder Alleskönner? Wir klären auf: Ist der HandBrake Video Converter wirklich sicher für Ihren PC?
  • Német

Virengefahr oder Alleskönner? Wir klären auf: Ist der HandBrake Video Converter wirklich sicher für Ihren PC?

2025.08.12.
Ihre Apple ID: Der ultimative Guide zu Sicherheit, Verwaltung und Funktionen
  • Német

Ihre Apple ID: Der ultimative Guide zu Sicherheit, Verwaltung und Funktionen

2025.08.12.
Ihr Avira Passwort Manager vergisst ständig Ihre Log-in-Daten? Das können Sie tun!
  • Német

Ihr Avira Passwort Manager vergisst ständig Ihre Log-in-Daten? Das können Sie tun!

2025.08.12.
Großer Bildschirm, volle Kontrolle: So können Sie Ihre Blink Kamera ganz einfach am PC anzeigen lassen
  • Német

Großer Bildschirm, volle Kontrolle: So können Sie Ihre Blink Kamera ganz einfach am PC anzeigen lassen

2025.08.12.
Alarmstufe Rot: An diesen untrüglichen Zeichen erkennen Sie, ob Ihr Microsoft Konto gehackt wurde
  • Német

Alarmstufe Rot: An diesen untrüglichen Zeichen erkennen Sie, ob Ihr Microsoft Konto gehackt wurde

2025.08.12.

Olvastad már?

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?
  • Német

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?

2025.08.12.
In der Welt der Eventtechnik ist Präzision alles. Ob bei Konzerten, Theateraufführungen, Firmenevents oder TV-Produktionen – das...
Bővebben Read more about Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?
Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten
  • Német

Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten

2025.08.12.
Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?
  • Német

Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?

2025.08.12.
Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?
  • Német

Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?

2025.08.12.
Next-Gen-Entwicklung: Wenn Spiele 5-10 Jahre Entwicklungszeit benötigen, wird die Engine dann mitten im Projekt aktualisiert?
  • Német

Next-Gen-Entwicklung: Wenn Spiele 5-10 Jahre Entwicklungszeit benötigen, wird die Engine dann mitten im Projekt aktualisiert?

2025.08.12.

Verpassen Sie das nicht

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?
  • Német

Perfektes Timing: Welche Software generiert einen Timecode für dot2 zu einer Audio-Datei?

2025.08.12.
Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten
  • Német

Snapchat-Sperre umgehen? Wenn ich wurde blockiert, kann ich die Person noch irgendwo sehen? – Die Fakten

2025.08.12.
Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?
  • Német

Der Performance-Check: Welcher Laptop ist besser für Videoediting geeignet – und worauf müssen Sie achten?

2025.08.12.
Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?
  • Német

Meisterwerke per Klick: Könnt ihr mir eine gute Bilderstellungs-KI empfehlen, die beeindruckt?

2025.08.12.
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.