Zum Inhalt springen
uencoder

Verwenden ein cryptographically sicher pseudorandom Zahl generator

CSPRNGs produce Ausgabe indistinguishable von wahr randomness. Lernen der correct APIs und warum Math.random() ist forbidden in Sicherheit contexts.

  1. 1

    A CSPRNG collects entropy from hardware sources (thermal noise, keystroke timing, disk seek times) and produces output that is computationally indistinguishable from true randomness. In browsers, use crypto.getRandomValues(); in Node.js, use crypto.randomBytes(). Never use Math.random() — it is a PRNG for simulations, not security.

  2. 2
    Zufallsbytes-Generator →

    Erzeugen cryptographically secure random bytes. This tool uses the platform CSPRNG. Specify the number of bytes needed (32 for a 256-bit key, 16 for a 128-bit key, 12 for a GCM nonce).

  3. 3
    Passwort-Generator →

    Erzeugen a random password using the CSPRNG. Specify length and character set. For high-security passwords, use at least 16 characters with mixed case, digits, and symbols.

  4. 4

    Entropy check: a CSPRNG is only as good as its entropy source. On startup, the OS entropy pool may be low — Node.js and browsers handle this by blocking until enough entropy is collected. On embedded devices or VMs, consider adding hardware entropy sources (e.g., RDRAND, /dev/hwrng).

Häufige Fragen

Why is Math.random() insecure?
Math.random() uses a deterministic algorithm (e.g., xorshift) seeded from a predictable value. With enough outputs, an attacker can reconstruct the internal state and predict all future outputs. It is designed for speed in simulations, not unpredictability for security.
What is entropy?
Entropy is a measure of unpredictability. A CSPRNG needs high-entropy input (from hardware noise) to produce secure output. On a fresh VM, the entropy pool may be small — use haveged or virtio-rng to supplement it. Low entropy leads to predictable "random" output.

Verwandte Tools