Ich brauche einen großen (wie sagen, 128-Bit-großen) Zufallszahlengenerator in PHP. Ich dachte daran, diese Zahl in einer Zeichenfolge als Hexadezimal zu speichern.Große Zufallsgeneration
Beachten Sie, dass dies für ein Login-System zu verstehen ist, dass die Notwendigkeit für eine „zufällige“ Nummer erwähnt, so vermute ich, ich wirklich brauche es „random-genug“ zu sein (weil ich weiß, pseudo-zufällig ist nie wirklich zufällig).
Der Algorithmus, den ich dachte, war die Nummer eins hexadezimal zu einer Zeit zu generieren, dann verkettete alles. Wie folgt aus:
$random = '';
for ($i = 0; $i < 32; ++$i) {
$digit = rand(0, 15);
$random .= ($digit < 10 ? $digit : ($digit - 10 + 'a'));
}
return $random;
Kann ich vertraue dieser Funktion gut Pseudozufallszahl zurückzukehren, oder bin ich durcheinander mit etwas wirklich soll ich nicht?
Warum nicht einfach ersetzen $ Salz von rand()? Wäre es nicht gleichermaßen zufällig? Verdammt, wahrscheinlich noch mehr zufällig. – luiscubal
das stimmt, aber die Verwendung von rand() negiert Ihre Fähigkeit, den erwarteten Hash zu vergleichen, wenn Sie das tun wollen. Z.B.In Passwort-Situationen hasst du oft das Passwort des Users mit einem Salz - dann, da du vermutlich der einzige bist, der das Salz kennt, kannst du den Hash, den du in der Datenbank für diesen Benutzer notiert hast, mit dem "erwartet" vergleichen Hash ", und Sie können überprüfen, ob es korrekt ist. – julio