Zufallsstring-Generator — wie und warum sichere Tokens, Passwörter und Schlüssel generieren
Ein Zufallsstring-Generator ist ein Werkzeug zur Erstellung von Zeichenfolgen aus einem vorgegebenen Satz (Alphabet, Ziffern, Sonderzeichen) gewünschter Länge. Solche Strings werden in der Softwareentwicklung, beim Testen, in der Informationssicherheit und bei der Systemadministration verwendet. Unser Generator arbeitet auf Basis des kryptografisch sicheren Algorithmus crypto.getRandomValues(), der in jeden modernen Browser integriert ist.
Kryptografische Sicherheit: warum das wichtig ist
Nicht alle Zufallszahlengeneratoren sind gleich. Das gewöhnliche Math.random() in JavaScript ist pseudo-zufällig und vorhersehbar — es eignet sich nicht zur Generierung von Passwörtern, Tokens oder Verschlüsselungsschlüsseln. Die Methode crypto.getRandomValues() gehört zur Klasse CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) und verwendet die Entropiequelle des Betriebssystems. Diese Methode wird in TLS/SSL, der Web Crypto API, der Generierung von JWT-Tokens und anderen kritischen Systemen eingesetzt. Unser Generator verwendet ausschließlich die Crypto-API und gewährleistet maximale Stärke der generierten Strings.
Passwort-Generierung: Länge, Entropie, Stärke
Ein sicheres Passwort hat ausreichende Entropie — ein Maß für Unvorhersehbarkeit. Die Entropie wird als Stringlänge multipliziert mit dem Logarithmus der Alphabetgröße zur Basis 2 berechnet. Für ein Passwort aus dem Satz a-z, A-Z, 0-9 (62 Zeichen) fügt jedes Zeichen ~5.95 Bit Entropie hinzu. Ein 12-Zeichen-Passwort hat ~71 Bit, 16-Zeichen — ~95 Bit, 20-Zeichen — ~119 Bit. Die NIST-Empfehlungen (SP 800-63B) sehen mindestens 8 Zeichen für Online-Dienste vor, aber die moderne Praxis sind 14-20 Zeichen mit gemischtem Satz.
Autorisierungs-Tokens und API-Schlüssel
Tokens (Access-Token, Refresh-Token, API-Schlüssel) sind geheime Strings, die Zugriffsrechte auf eine Ressource bestätigen. Für API-Schlüssel beträgt die Standardlänge 32-64 alphanumerische Zeichen, was 190-380 Bit Entropie bietet. Sitzungs-Identifikatoren (Session-ID) müssen mindestens 128 Bit Entropie gemäß OWASP-Empfehlungen haben. CSRF-Tokens, Nonce-Werte und Einmalbestätigungscodes werden ebenfalls mit CSPRNG generiert.
UUID v4: universell eindeutiger Identifikator
UUID v4 (RFC 4122) ist ein 128-Bit-Identifikator, bei dem 122 Bit zufällig sind und 6 Bit für Version und Variante reserviert sind. Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, wobei y eines der Zeichen 8, 9, a, b ist. UUID v4 bietet 2^122 (~5.3 × 10^36) mögliche Werte, was die Kollisionswahrscheinlichkeit selbst bei der Generierung von Milliarden Identifikatoren vernachlässigbar klein macht. UUID wird häufig als Primärschlüssel in PostgreSQL, MongoDB, Microservice-Architekturen und verteilten Systemen verwendet.
HEX und Base64: Kodierungsformate
HEX (hexadezimale Kodierung) stellt jedes Byte mit zwei Zeichen dar (0-9, a-f). Wird für Hashes verwendet (SHA-256 = 64 HEX-Zeichen), MAC-Adressen, CSS-Farben (#FF5733) und Verschlüsselungsschlüssel. Base64 kodiert drei Bytes mit vier Zeichen aus dem Alphabet A-Z, a-z, 0-9, +, / (und = zur Ausrichtung). Wird zum Kodieren von JWT, Einbetten von Bildern in HTML (Data-URI), Übertragen von Binärdaten in JSON und XML verwendet.
Salt und Passwort-Hashing
Salt ist ein zufälliger String, der dem Passwort vor dem Hashing hinzugefügt wird, um vor Rainbow-Tables und Brute-Force-Angriffen zu schützen. Jeder Benutzer sollte einen eindeutigen Salt haben. Die empfohlene Salt-Länge beträgt mindestens 16 Bytes (32 HEX-Zeichen oder 22 Base64-Zeichen). Moderne Hashing-Algorithmen (bcrypt, Argon2, scrypt) generieren Salt automatisch, aber für andere Szenarien — beispielsweise HMAC oder Verschlüsselung — muss Salt separat generiert werden.
Testdaten für die Entwicklung
Zufallsstrings sind beim Testen unverzichtbar: Ausfüllen von Formularfeldern, Erstellen von Mock-Daten, Lasttests, Validierung und Längenbeschränkungen. Der Generator ermöglicht es Ihnen, schnell tausend Strings der gewünschten Länge mit einem beliebigen Zeichensatz zu erstellen — und sie als Textdatei zum Import in eine Testdatenbank oder ein Skript herunterzuladen.
Sicherheitstipps beim Arbeiten mit geheimen Strings
Generierte Passwörter, Schlüssel und Tokens sollten in einem Passwort-Manager (1Password, Bitwarden, KeePass) oder in einem geschützten Secrets-Vault (HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager) gespeichert werden. Speichern Sie niemals Secrets im Klartext in Code, Konfigurationen oder Repository (git). Verwenden Sie zum Übertragen von Secrets zwischen Teammitgliedern verschlüsselte Kanäle oder Einmal-Links (z.B. OneTimeSecret). Schlüssel- und Token-Rotation ist obligatorisch: Ändern Sie API-Schlüssel und Service-Tokens mindestens alle 90 Tage.