Salt- & Zufalls-Token-Generator
KryptoErzeugt kryptografisch sichere Salts und Token als Hex oder Base64 mit crypto.getRandomValues.
Auf dieser Seite
Was ist ein Salt?#
Ein Salt ist ein Stück Zufallsdaten, das Sie in einen Hash-Prozess mischen, sodass zwei identische Eingaben verschiedene Ausgaben erzeugen. Seine Aufgabe ist Einzigartigkeit, nicht Geheimhaltung: Ein Salt kann im Klartext neben dem Hash liegen, den es schützt, und es vereitelt dennoch einen Angriff, der darauf angewiesen ist, dass jeder Nutzer mit demselben Passwort zu demselben Digest hash. Sobald jedes Passwort seinen eigenen Salt hat, kann ein Angreifer eine vorberechnete Tabelle nicht über die ganze Datenbank wiederverwenden — er muss pro Eintrag neu rechnen.
Diese Seite erzeugt kryptografisch starke Zufallsbytes mit crypto.getRandomValues und übergibt sie Ihnen in drei Kodierungen: Hex (zwei Zeichen pro Byte, die Konvention für Passwort-Salts und Integritäts-Tokens), Base64 (kompakter) und Base64url (die URL- und dateinamensichere Variante, die +// durch -/_ ersetzt und das =-Padding weglässt, verwendet in JWTs und signierten URLs).
Dasselbe Primitiv dient zudem als allzweck-Zufallstoken-Generator: API-Schlüssel, Nonce-Werte, opake IDs und Einmal-Tokens sind alles „ein paar Zufallsbytes, als Text kodiert“, was genau das ist, was dies erzeugt.
Verwendung#
- Legen Sie die Anzahl der Bytes fest. Der Standard 16 (128 Bits) ist die Standard-Saltgröße; das Feld akzeptiert bis zu 8192, wenn Sie ein längeres Token brauchen.
- Wählen Sie ein Format: Hex, Base64 oder Base64url.
- Klicken Sie auf Erzeugen, dann auf Kopieren. Die Statuszeile zeigt, wie viele Bits Entropie das Ergebnis darstellt (Bytes × 8), sodass Sie auf einen Blick bestätigen können, dass Sie bekamen, worum Sie gebeten haben.
Eckpunkte#
- Unbiased Zufallsbytes. Bezogen aus
crypto.getRandomValues, dem kryptografisch starken Generator des Browsers. - Drei Kodierungen. Hex für Salts und Prüfsummen; Base64 für kompakte Tokens; Base64url für alles, was in einer URL, einem Dateinamen oder JSON reist.
- Ehrliche Entropie-Meldung. Die Statuszeile nennt die tatsächliche Bitzahl statt der kodierten Stringlänge, die sich leicht mislesen lässt.
- Bis zu 8192 Bytes. Dasselbe Werkzeug bedient ein 16-Byte-Salt und ein 256-Byte-Schlüssel-Blob.
- Kein Upload. Die Erzeugung ist lokal; die Zufallsbytes werden niemals übertragen.
Konkretes Beispiel#
Erzeugen Sie 16 Bytes in jedem der drei Formate. Eine 16-Byte-Ziehung sind 128 Bits Entropie, und die kodierten Längen sind fest, unabhängig von den Zufallswerten:
- Hex — 32 Zeichen, z. B.
7a4c9f1e0b8d2635c4a1e9f07b2d4861 - Base64 — 24 Zeichen mit
==-Padding, z. B.8MDwarqMD7B594C5hCB1zQ== - Base64url — 22 Zeichen, Padding entfernt, z. B.
8MDwarqMD7B594C5hCB1zQ
(Die Werte oben illustrieren die Form; Ihre tatsächliche Ausgabe weicht bei jedem Klick ab, weil die Bytes frisch zufällig sind.) Erhöhen Sie auf 32 Bytes für ein 256-Bit-Salt oder -Schlüssel und die Längen wachsen deterministisch: 64 Hex-Zeichen, 44 Base64-Zeichen, 43 Base64url-Zeichen. Diese feste Beziehung zwischen Bytezahl und kodierter Länge ist ein schneller Weg, um zu sanity-prüfen, dass Sie die Größe erzeugt haben, die Sie beabsichtigten.
FAQ#
Muss ein Salt geheim sein?#
Nein. Der Zweck eines Salts ist Einzigartigkeit — er stellt sicher, dass zweimaliges Hashen desselben Passworts verschiedene Digests liefert. Er wird neben dem Hash im Klartext gespeichert, und das schwächt das Schema nicht. Was geheim bleiben muss, ist der Schlüssel bei HMAC oder das Passwort bei der Verschlüsselung, nicht der Salt.
Wie viele Bytes sollte ich erzeugen?#
16 Bytes (128 Bits) sind der Standard für Passwort-Salts und die meisten Tokens — sie machen versehentliche Kollisionen praktisch unmöglich. Für Session-Tokens oder alles, was lange gegen einen gut finanzierten Angreifer halten soll, sind 32 Bytes (256 Bits) ein angenehmes Polster. Alles darüber ist meist übertrieben, es sei denn, ein spezielles Protokoll verlangt es.
Was ist der Unterschied zwischen Base64 und Base64url?#
Beide kodieren dieselben Bytes, aber Base64 verwendet + und /, die URLs und Dateinamen brechen, und wird mit = aufgefüllt. Base64url ersetzt diese durch - und _ und lässt das Padding weg, sodass das Ergebnis direkt in einen URL-Pfad, einen Query-String oder einen Dateinamen ohne Escaping eingefügt werden kann. Verwenden Sie Base64url für JWTs, signierte URLs und opake Tokens; verwenden Sie normales Base64, wenn die Ausgabe innerhalb von Datenfeldern bleibt.
Kann ich das als API-Schlüssel verwenden?#
Ja. Erzeugen Sie 32 Bytes in Base64url und Sie haben ein 43-Zeichen-Token mit 256 Bits Entropie — mehr als genug für einen API-Schlüssel oder ein langlebiges Bearer-Token. Kopieren Sie es nur sofort, da der Wert lokal erzeugt wird und später nicht wiederherstellbar ist.