🌐 DE

🎲 Zufallsgenerator

Tool zum Erzeugen von UUIDs, zufälligen Zeichenfolgen, Sicherheitsschlüsseln und mehr. Nützlich für API-Schlüssel, temporäre Passwörter und die Token-Generierung – erzeugt Zufallszahlen auf kryptografisch sichere Weise.

Ergebnis
※ Eine UUID ist ein universell eindeutiger Bezeichner mit extrem geringer Duplikationswahrscheinlichkeit.
※ Die generierten Zufallszahlen werden auf kryptografisch sichere Weise erzeugt.
※ Kann für API-Schlüssel, temporäre Passwörter, Tokens und mehr verwendet werden.
RATGEBER

Mehr erfahren

01

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.

02

2. UUID und eindeutige Bezeichner

Eine UUID (Universally Unique Identifier) ist ein 128-Bit-eindeutiger Bezeichner mit extrem geringer Kollisionswahrscheinlichkeit. UUID v4 ist vollständig zufällig und am weitesten verbreitet. Das Format lautet xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, wobei 4 die Version und y die Variante angibt. UUID v1 basiert auf Zeitstempel und MAC-Adresse, was eine chronologische Sortierung ermöglicht, aber MAC-Adressen offenlegt – ein Sicherheitsrisiko. UUID v7 ist die neueste Version, ebenfalls zeitstempelbasiert, jedoch ohne Offenlegung persönlicher Informationen. Die Verwendung von UUIDs als Primärschlüssel in Datenbanken, Dateinamen, Session-IDs und in verteilten Systemen gewährleistet Eindeutigkeit ohne zentrale Koordination.

03

3. Generierung von Sicherheitsschlüsseln und Tokens

API-Schlüssel, Authentifizierungs-Tokens und Session-IDs müssen ausreichend Entropie besitzen. Ein Minimum von 128 Bit (16 Byte) wird empfohlen, wobei 256 Bit (32 Byte) sicherer sind. Die Base64-Kodierung wandelt sie in URL-sichere Zeichenfolgen um. Ein JWT (JSON Web Token) besteht aus Header, Payload und Signatur und enthält die Informationen direkt im Token selbst. CSRF-Tokens verhindern Cross-Site-Request-Forgery, indem in jedem Formular ein eindeutiges Token enthalten ist. Der state-Parameter von OAuth 2.0 ist ebenfalls ein Zufallswert zur CSRF-Prävention. Tokens sollten entweder einmalig (Nonce) sein oder über eine Ablaufzeit verfügen, um Replay-Angriffe zu verhindern.

04

4. Implementierung kryptografischer Zufallsgeneratoren

Betriebssysteme sammeln Entropie aus Hardware-Rauschen, dem Timing von Tastatur/Maus, Netzwerkpaketen und mehr. Linux stellt /dev/random (blockierend) und /dev/urandom (nicht blockierend) bereit. /dev/random wartet bei unzureichender Entropie, was in Serverumgebungen problematisch sein kann. Moderne Kernel empfehlen den Systemaufruf getrandom(). Windows verwendet CryptGenRandom (veraltet) oder BCryptGenRandom (modern). Hardware-Zufallsgeneratoren (HRNG) nutzen Intel-RDRAND-Befehle oder TPM-Chips, um echten Zufall zu erzeugen. Cloud-Umgebungen leiden aufgrund der Virtualisierung unter Entropieknappheit und setzen daher Daemons wie haveged ein.

05

5. Zufallszahlen in Blockchain und Smart Contracts

Blockchains sind deterministische Umgebungen, was die Erzeugung von Zufallswerten erschwert. Alle Knoten müssen dasselbe Ergebnis überprüfen können, weshalb klassische Zufallszahlen nicht verwendet werden können. Die Nutzung von Block-Hashes als Zufallsquelle ermöglicht eine Manipulation durch Miner. Chainlink VRF (Verifiable Random Function) liefert überprüfbaren Zufall für On-Chain-Lotterien und das Minting von NFTs. Bei Commit-Reveal-Verfahren reichen Teilnehmer zunächst einen Hash ein (Commit) und enthüllen später das Original (Reveal), um Manipulation zu verhindern. Random Beacon ist ein öffentlicher Zufallsdienst, der vom NIST oder dem drand-Projekt bereitgestellt wird. Spiele auf Basis von Smart Contracts benötigen vertrauenswürdigen Zufall.

06

6. Praktische Anwendungen von Zufallsgeneratoren

Online-Zufallsgeneratoren dienen den unterschiedlichsten Zwecken. Die Ausstellung von API-Schlüsseln erfordert ausreichende Länge (32+ Zeichen) und Komplexität. Temporäre Passwörter kombinieren Zahlen, Buchstaben und Sonderzeichen und sind nur einmalig gültig. Bei Gutscheincodes bevorzugt man benutzerfreundliche Kombinationen aus Großbuchstaben und Zahlen (z. B. AB12-CD34-EF56). Einladungscodes verwenden kurze, leicht merkbare 6-8 Zeichen. Kombinationen aus Zeitstempel und Zufall vermeiden Namenskollisionen bei Dateien. Die Verwendung von UUIDs als Sharding-Schlüssel in Datenbanken überwindet die Grenzen automatisch inkrementierter IDs. Auch die Zuweisung von A/B-Testgruppen gewährleistet durch Zufall Fairness. Es ist stets wichtig, den passenden Zufallsgenerator entsprechend den Sicherheitsanforderungen zu wählen.

Häufig gestellte Fragen

Was ist der Unterschied zwischen normalem Zufall und einem CSPRNG?
Standard-Zufallsgeneratoren wie Math.random() erzeugen algorithmisch vorhersagbare Pseudozufallszahlen, sobald der Startwert bekannt ist. Für sicherheitskritische Zwecke braucht man einen kryptografisch sicheren Zufallszahlengenerator (CSPRNG), wie ihn PHP mit random_bytes()/random_int() oder JavaScript mit crypto.getRandomValues() bereitstellt.
Wofür steht die "4" in einer UUID v4?
Die "4" an der entsprechenden Stelle im Format xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx kennzeichnet die UUID-Version. UUID v4 ist vollständig zufällig erzeugt und die am weitesten verbreitete Version.
Wie lang sollte ein sicherer API-Schlüssel oder ein Sicherheits-Token sein?
Es wird eine Entropie von mindestens 128 Bit (16 Byte) empfohlen, 256 Bit (32 Byte) gelten als sicherer. Base64-Kodierung wandelt die Zufallswerte in URL-sichere Zeichenfolgen um.
Warum kann man in einer Blockchain nicht einfach echten Zufall verwenden?
Blockchains sind deterministische Systeme, in denen alle Knoten dasselbe Ergebnis verifizieren müssen können, sodass klassischer Zufall nicht direkt nutzbar ist. Lösungen wie Chainlink VRF oder das Commit-Reveal-Verfahren liefern überprüfbaren Zufall, ohne dass er von einzelnen Teilnehmern manipuliert werden kann.