Hallo Community,
ich stehe ich vor einer Frage, die mich etwas beunruhigt. Es dreht sich um die Kombination aus crypt() und password_verify():
Wie oben zu sehen wird also ein Passwort gehasht und anschließend überprüft (1: ).
So weit, so gut. Nun sieht man aber in (2: ), dass auch ein nicht identisches Passwort als korrekt eingestuft wird. Korrekter: Die Zeichenkette hinter "Cooin(12" ist beliebig, alles wird akzeptiert.
Nun meine Frage: Schneidet crypt() das Passwort ab einer gewissen Länge ab?! Das wäre die einzige mir schlüssig erscheinende Erklärung, finden konnte ich dazu bisher aber nichts.
Vielen Dank für alle Hinweise im Voraus!
Grüße
alve
ich stehe ich vor einer Frage, die mich etwas beunruhigt. Es dreht sich um die Kombination aus crypt() und password_verify():
PHP-Code:
// Erstellen eines (10 Zeichen) Salts
echo 'salt: ' . $salt = \core\classes\HELPER::generateRandomString(10);
echo '<br />';
// Hashen des Passworts mit oben generiertem Salt
echo 'hash: ' . $hash = crypt('Cooin(12',$salt);
echo '<br />';
// Vergleich des Passwortes mit obigem Hash
/* 1:*/ echo 'check: ' . password_verify('Cooin(12', $hash); // ergibt true
/* 2:*/ echo 'check: ' . password_verify('Cooin(12aspin3in3', $hash); // ergibt auch true
Wie oben zu sehen wird also ein Passwort gehasht und anschließend überprüft (1: ).
So weit, so gut. Nun sieht man aber in (2: ), dass auch ein nicht identisches Passwort als korrekt eingestuft wird. Korrekter: Die Zeichenkette hinter "Cooin(12" ist beliebig, alles wird akzeptiert.
Nun meine Frage: Schneidet crypt() das Passwort ab einer gewissen Länge ab?! Das wäre die einzige mir schlüssig erscheinende Erklärung, finden konnte ich dazu bisher aber nichts.
Vielen Dank für alle Hinweise im Voraus!
Grüße
alve
Kommentar