Moin!
Die derzeitige Empfehlung für PHP lautet ab Version 5.5 password_hash().
Moin dedfix,
password_hash() steht in dem Beispiel mit drin und wird preferiert.
Ja, aber nur beim Hashen - beim Prüfen passiert vor dem password_verify noch viel Zeugs, dass ich auf den ersten Blick nicht verstehe und deshalb nicht gewillt bin, weiter zu untersuchen.
Jaja. Im Wiki-Beitrag habe ich neue Erkenntnisse verarbeitet- da geht jetzt einiges deutlich kürzer:
$test = crypt($klartext, $hash)
liefert (wenn der Algo unterstützt wird) den hash, so dass Passwörter gleich so geprüft werden können:
if ( $hash == crypt($klartext, $hash) ) { "Ha! Drin!" } else { "Zu blöd, ein Passwort zu tippen?" }
Außerdem erscheint es mir grandios eklig, dass der Aufruf der Hash-Funktion eventuell mit header(); exit(); das Skript abbricht!
Das ist Geschmackssache. Dazu steh in den style-guides des Bestellers was - oder eben nicht. Was das Programmieren betrifft: Ich für meinen Teil sehe da sofort - "weg, Abbruch, Ende". Und halte es für sicherer als weiter unten ständig zu prüfen, ob ein flag gesetzt ist.
Jörg Reinholz