1. Bedeutung von Zufallszahlen und CSPRNG
Zufallszahlen sind unvorhersehbare Werte, die für Verschlüsselung, Sicherheit, Spiele und Simulationen unverzichtbar sind. Standard-Zufallsgeneratoren erzeugen Pseudozufallszahlen mittels Algorithmen, wodurch sie vorhersehbar werden, sobald der Startwert (Seed) bekannt ist. Für sicherheitskritische Anwendungen sollte ein CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) verwendet werden. Die PHP-Funktionen random_bytes() und random_int() sind CSPRNGs, die /dev/urandom oder CryptGenRandom nutzen. JavaScript stellt crypto.getRandomValues() bereit, das die Entropiequellen des Browsers nutzt. Das klassische Math.random() ist für sicherheitsrelevante Zwecke ungeeignet und darf niemals für Tokens, Session-IDs oder Verschlüsselungsschlüssel verwendet werden.