bitlvl
DE

Zufallsbytes- & Token-Generator

Wählen Sie Länge und Format und erzeugen Sie so viele, wie Sie brauchen. Alles stammt aus der kryptografischen Zufallsquelle des Browsers, derselben, die TLS nutzt.

Art
 

Die Ergebnisse und Meldungen dieses Tools werden auf Englisch angezeigt.

Woher der Zufall kommt

crypto.getRandomValues fragt den CSPRNG des Betriebssystems (getrandom() auf Linux, SecRandomCopyBytes auf macOS, BCryptGenRandom auf Windows), der aus Hardware-Ereignissen und auf modernen CPUs der RDRAND-Instruktion gespeist wird. Er ist in beide Richtungen unvorhersagbar: Eine Million Ausgaben zu kennen verrät nichts über die nächste. Math.random() ist das nicht; es ist ein schneller PRNG mit kleinem internem Zustand, gut für Spiele und nie für Geheimnisse.

Wie viele Bytes

ZweckBytesWarum
Session-ID, CSRF-Token16–32128 Bit sind jenseits von Brute Force; 32 Bytes sind die übliche Vorgabe.
API-Key / Secret32256 Bit; zur Speicherung mit SHA-256 gehasht, wie ein Passwort, aber ohne langsames Hashing, weil es zufällig ist.
HMAC- / JWT-Signierschlüssel32–64An die Hash-Ausgabe angepasst: 32 für SHA-256, 64 für SHA-512.
AES-Schlüssel16 / 32AES-128 oder AES-256.
Salt16Eindeutigkeit zählt; 128 Bit garantieren sie.
Passwort-Reset-Token in einer URL16–24Base64URL hält es kurz; den Hash speichern, schnell ablaufen lassen.

Zufallszahlen ohne Verzerrung

zufallsbyte % 6 für einen Würfel ist subtil falsch: 256 ist nicht durch 6 teilbar, also kommen 1–4 etwas häufiger als 5–6. Die korrekte Methode zieht einen Wert, verwirft ihn, wenn er in den Restbereich oben fällt, und versucht es erneut; das macht dieser Generator, und das machen secrets.randbelow, crypto.randomInt und rand.Intn.

Keys mit Präfix

Präfixe wie sk_live_, ghp_ oder AKIA bringen keine Sicherheit, machen Keys aber in Logs erkennbar und lassen Secret-Scanner (GitHubs, gitleaks) geleakte finden. Wählen Sie ein für Ihren Dienst eindeutiges Präfix und halten Sie den Zufallsteil bei 32 Bytes.

Fragen

Ist das so gut wie openssl rand oder /dev/urandom?

Ja: Der Browser ruft denselben Betriebssystem-Generator auf, den diese Werkzeuge lesen. Die Ausgabe eignet sich für Schlüssel und Geheimnisse. Wenn Sie es ohnehin in einer Shell brauchen: openssl rand -hex 32, oder head -c 32 /dev/urandom | base64.

Soll ich API-Keys gehasht speichern?

Ja, mit einem schnellen Hash wie SHA-256; weil der Key zufällig ist, ist ein langsamer Passwort-Hash unnötig. Zeigen Sie den Key einmal bei der Erstellung und behalten Sie nur den Hash, wie GitHub und Stripe es tun.

Was ist Base64URL?

Base64 mit - und _ statt + und /, meist ohne Padding, sodass der Wert ohne Escaping in einer URL oder einem Cookie stehen kann. JWTs und die meisten modernen Tokens nutzen es.

Warum nicht einfach eine UUID als Token?

Eine UUIDv4 hat 122 Zufallsbits, was reicht, aber ihr festes Format verrät, was sie ist, und verschwendet Zeichen auf Bindestriche. Für Geheimnisse sind rohe Zufallsbytes in Base64URL kürzer und stärker. UUIDs sind für Kennungen, nicht für Geheimnisse.