Hallo,
$salt='';
for ($i=0; $i<PASSWD_SALT_LENGHT; $i++) {
$salt .= chr( rand( 33, 125 ) ); # ascii von '!' bis '}' # OHNE '~'!rand() ist meines Wissens keine zuverlässige Quelle für Zufallszahlen zur Verwendung in kryptografischen Verfahren.
Das ist hier ziemlich egal. Bei der von mir vorgeschlagenen Länge von 32 Zeichen gibt es 92^32 verschiedene Kombinationen (Als Zahl: 693761947078590541087517725927563750525223139271569629234855936; Als 10er Potenz: ~ 6.9 * 10^62).
Selbst wenn rand() unzuverlässig wäre, so dürfte man (mit gegenwärtiger Rechentechnik)
for ($i=0; $i<PASSWD_SALT_LENGHT; $i++) {
$salt .= chr( rand( 33, 125 ) );
}
so oft aufrufen müssen, dass der Eigentümer des Passwortes schon _sehr_ lange tot ist, bis ein vorher ermittelter, beliebiger Salt sich wiederholt. Und wie viele Passwörter werden wohl auf diese Weise "gesalzen"?