Mathematik zum Montag
bearbeitet von 1unitedpower> # Wer Fehler findet mag's korrigieren:
>
> [0-9A-Za-z/.] -> 58 Symbole
>
> Salts mit 16 Zeichen -> 16 Stellen
>
> 58^16 = 16400152899115243850138976256 mögliche Iterationen
Es gibt nur `2^32 − 1 = 4294967295` Möglichkeiten mit denen der Pseudo Random Number Generator (PRNG) von PHP geseeded werden kann [^1]. Kenne ich den Seed, kann ich damit **jede** Ausgabe von `rand` vorhersagen. Dann ist es egal, ob du nur ein Zufallsbit erzeugst oder einen terrabyte großen Zufallswert. Ich kann den Wert mit dem Seed exakt reproduzieren.
Als Probe kann man den Seed einfach mal manuell mit `srand(0)` setzen. Die ersten drei Aufrufe von `rand()` liefern dann die Pseudozufallszahlen: `1178568022` `1273124119` `1535857466`.
Du kommst mit `rand` nicht über `2^32 - 1` Möglichkeiten hinaus einen Salt zu bilden.
[^1]: [https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/](https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/)
Mathematik zum Montag
bearbeitet von 1unitedpower> # Wer Fehler findet mag's korrigieren:
>
> [0-9A-Za-z/.] -> 58 Symbole
>
> Salts mit 16 Zeichen -> 16 Stellen
>
> 58^16 = 16400152899115243850138976256 mögliche Iterationen
Es gibt nur `2^32 − 1 = 4294967295` Möglichkeiten mit denen der Pseudo Random Number Generator (PRNG) von PHP geseeded werden kann [^1]. Kenne ich den Seed, kann ich damit **jede** Ausgabe von `rand` vorhersagen. Dann ist es egal, ob du nur ein Zufallsbit erzeugst oder einen terrabyte großen Zufallswert. Ich kann den Wert mit dem Seed exakt reproduzieren.
Als Probe kann man den Seed einfach mal manuell mit `srand(1)` setzen. Die ersten drei Aufrufe von `rand()` liefern dann die Pseudozufallszahlen: `1178568022` `1273124119` `1535857466`.
Du kommst mit `rand` nicht über `2^32 - 1` Möglichkeiten hinaus einen Salt zu bilden.
[^1]: [https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/](https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/)