TOTP- / 2FA-Code-Generator
Erzeuge einen TOTP/2FA-Code aus einem Base32-Secret — 100 % in deinem Browser, dein Secret verlässt nie dein Gerät. QR-Einrichtung + Code-Prüfung.
Erweiterte Optionen
Was ist ein TOTP-/2FA-Code-Generator?
Ein TOTP-Generator verwandelt ein gemeinsames Secret in den rotierenden Einmalcode, der die Zwei-Faktor-Authentifizierung antreibt. TOTP — zeitbasiertes Einmalpasswort, definiert in RFC 6238 — nimmt ein Base32-Secret und die aktuelle Zeit, unterteilt die Zeit in feste Schritte (standardmäßig 30 Sekunden) und führt einen HMAC über den Schrittzähler aus, um einen kurzen numerischen Code abzuleiten. Da sowohl deine Authenticator-App als auch der Server dasselbe Secret halten und dieselbe Uhr lesen, berechnen sie den identischen Code, ohne ihn je über das Netzwerk auszutauschen. Genau das ist der Sinn der 2FA: Selbst wenn dein Passwort durchsickert, braucht ein Angreifer immer noch den Code, den nur dein Secret gerade jetzt erzeugen kann.
"The TOTP algorithm is a time-based variant of the HOTP algorithm... TOTP = HOTP(K, T), where T is an integer representing the number of time steps between the initial counter time T0 and the current Unix time." — RFC 6238, Section 4
Dieses Tool erledigt drei Aufgaben auf einer Seite. Es erzeugt einen Live-Code aus jedem Base32-Secret mit einem Countdown und einer Vorschau des nächsten Codes; es richtet ein brandneues Secret ein, indem es die otpauth://-URI und den QR-Code baut, den du in eine Authenticator-App einscannst; und es verifiziert einen Code gegen ein Secret mit einer Toleranz von ±1 Zeitschritt, genau wie echte Server einen gerade rotierten Code akzeptieren. All das läuft über die native Web-Crypto-API des Browsers, mit null Abhängigkeiten und null Netzwerkaufrufen.
Entwickler greifen ständig zu einem TOTP-Generator: um den genauen Code zu reproduzieren, den die App eines Nutzers anzeigt, während sie einen 2FA-Login debuggen, um ein Secret und einen QR-Code für ein neues Konto zu erstellen, um zu bestätigen, dass ein Prüffenster auf dem Server dem entspricht, was Nutzer erleben, oder um deterministische Fixtures für End-to-End-Tests eines Zwei-Faktor-Ablaufs zu bauen. Da das Secret ein langlebiger Schlüssel ist — wer es hat, kann jeden zukünftigen Code erzeugen —, muss es wie ein Passwort geschützt werden. Kombiniere dieses Tool mit unserem Zufallspasswort-Generator für die starken Passwörter und Wiederherstellungscodes, die neben der 2FA stehen, und mit dem QR-Code-Generator, wenn du ein eigenständiges Anmeldebild brauchst. Zum Signieren der JSON Web Tokens, die oft über einer authentifizierten Sitzung mitlaufen, siehe den JWT-Encoder.
// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
// Decode the Base32 secret to raw bytes (A-Z, 2-7)
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
let bits = '';
for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
bits += alpha.indexOf(c).toString(2).padStart(5, '0');
const bytes = new Uint8Array(
bits.match(/.{8}/g).map((b) => parseInt(b, 2)));
// Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
const counter = Math.floor(time / 1000 / 30);
const msg = new Uint8Array(8);
let c = counter;
for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }
const key = await crypto.subtle.importKey(
'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));
// Dynamic truncation (RFC 4226) -> 6-digit code
const off = hmac[hmac.length - 1] & 0x0f;
const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
(hmac[off + 2] << 8) | hmac[off + 3];
return (bin % 1_000_000).toString().padStart(6, '0');
}
const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds Hauptfunktionen
Live-Code mit Countdown
Füge ein Base32-Secret ein und der aktuelle TOTP-Code erscheint sofort mit einem 30-Sekunden-Countdown-Ring und einer Vorschau des nächsten Codes — ohne Erzeugen-Schaltfläche, ohne Warten.
Secret- & QR-Einrichtung
Erzeuge ein zufälliges Base32-Secret und erhalte dann die otpauth://-URI und einen QR-Code zum direkten Einscannen in Google Authenticator, Authy oder 1Password.
Eingebauter Code-Verifizierer
Prüfe einen Code gegen ein Secret mit derselben Toleranz von ±1 Zeitschritt, die echte Server verwenden, sodass ein gerade rotierter Code noch validiert wird.
Konfigurierbarer Algorithmus & Stellen
Wechsle zwischen SHA-1, SHA-256 und SHA-512, wähle 6 oder 8 Stellen und setze ein Intervall von 30 s oder 60 s, um die Anforderungen jedes Anbieters zu erfüllen.
Das Secret verlässt nie deinen Browser
Jeder Code wird lokal über die native Web-Crypto-API berechnet. Nichts wird hochgeladen, geloggt oder gespeichert — nachweislich, sogar offline.
Null Abhängigkeiten
Allein auf der Web-Crypto-API des Browsers aufgebaut — keine Bibliotheken von Drittanbietern, keine Telemetrie und keine Netzwerkaufrufe jeglicher Art.
Beispiele für den TOTP-Generator
Standard-TOTP mit 6 Stellen (SHA-1, 30 s)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-1 digits: 6 period: 30s
Code: 282760 · expires in 30s
Das kanonische RFC-6238-Test-Secret mit den Standardeinstellungen, die jede gängige App verwendet — SHA-1, 6 Stellen, ein 30-Sekunden-Intervall. Der Code ist zeitbasiert, daher hängt der genaue Wert von der aktuellen Uhrzeit ab; das Tool zeigt einen Live-Countdown und den nächsten Code.
8-stelliges Enterprise-TOTP (SHA-256)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-256 digits: 8 period: 30s
Code: 31094217 · expires in 30s
Manche Enterprise- und Hochsicherheitssysteme geben 8-stellige Codes aus, die mit SHA-256 statt dem standardmäßigen SHA-1 signiert sind. Stimme Algorithmus, Stellenanzahl und Intervall exakt mit dem ab, was dein Server erwartet, sonst lässt sich der erzeugte Code nicht validieren.
otpauth://-Einrichtungs-URI für Authenticator-Apps
issuer: Acme account: alice@example.com secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30
Das Tool erstellt eine standardmäßige otpauth://-URI und stellt sie als QR-Code dar. Scanne ihn mit Google Authenticator, Authy oder 1Password — oder füge die URI direkt ein —, um das Secret auf deinem Gerät zu hinterlegen.
So verwendest du den TOTP-Generator
- 1
Base32-Secret einfügen
Füge im Tab Erzeugen dein Base32-Secret ein (zum Beispiel JBSWY3DPEHPK3PXP). Der aktuelle TOTP-Code erscheint sofort mit einem 30-Sekunden-Countdown — ohne Erzeugen-Schaltfläche.
- 2
Erweiterte Optionen anpassen (optional)
Öffne die erweiterten Optionen, um den Algorithmus (SHA-1/256/512), die Stellenanzahl (6 oder 8) oder das Intervall (30 oder 60 s) an das anzupassen, was dein Anbieter ausgegeben hat.
- 3
Einrichten oder Verifizieren
Nutze den Tab Einrichten, um ein Secret und einen QR-Code für eine Authenticator-App zu erzeugen, oder den Tab Verifizieren, um einen Code gegen ein Secret mit einer Toleranz von ±1 Zeitschritt zu prüfen.
Häufige Fehler
Nicht passender Algorithmus oder Stellen
Ein für SHA-256 oder 8 Stellen ausgegebenes Secret erzeugt unter den Standardwerten SHA-1 / 6 Stellen einen völlig anderen Code. Stimme die Parameter des Anbieters exakt ab.
secret + SHA-1/6 digits // but server expects SHA-256/8
algorithm: SHA-256, digits: 8 // match the otpauth:// URI
Uhrabweichung
Weicht die Geräteuhr um mehr als einen Zeitschritt ab, lässt sich der Code nicht validieren. Synchronisiere die Systemuhr, bevor du Codes vergleichst.
system clock 90s fast // code is two steps ahead
enable NTP / automatic time // code aligns with server
Ungültiges Base32-Secret
Base32 verwendet nur A–Z und 2–7. Leerzeichen aus einem gedruckten Schlüssel sind in Ordnung, aber eine 0, 1 oder 8 ist kein gültiges Base32 und lässt sich nicht dekodieren.
secret: "JBSW 0NE8" // contains 0 and 8
secret: "JBSWY3DPEHPK3PXP" // valid Base32
Häufige Anwendungsfälle
- Einen 2FA-Login-Ablauf debuggen
- Reproduziere den genauen Code, den die Authenticator-App eines Nutzers anzeigt, um nachzuvollziehen, warum eine Zwei-Faktor-Anmeldung abgelehnt wird.
- Ein neues Konto einrichten
- Erzeuge ein frisches Base32-Secret und einen QR-Code und scanne sie dann in Google Authenticator, Authy oder 1Password ein, um die 2FA einzurichten.
- Das Fenster deines Servers validieren
- Verifiziere Codes gegen ein Secret, um zu bestätigen, dass dein Backend einen gerade rotierten Code akzeptiert und einen abgelaufenen ablehnt.
- End-to-End-Test-Fixtures bauen
- Berechne deterministische TOTP-Codes aus einem bekannten Secret, um automatisierte Tests eines Zwei-Faktor-Authentifizierungsablaufs anzutreiben.
- Enterprise-Einstellungen abgleichen
- Reproduziere 8-stellige oder SHA-256-Codes, wenn ein Anbieter von den Standardwerten SHA-1 / 6 Stellen abweicht, um eine Diskrepanz zu debuggen.
- Schnell den Zugriff wiederherstellen
- Erzeuge den aktuellen Code aus einem gesicherten Secret, wenn dein Telefon nicht verfügbar ist — mit einer Wegwerfkopie des Secrets.
Technische Details
- Konform zu RFC 6238 / RFC 4226
- Implementiert TOTP gemäß RFC 6238 auf Basis des dynamischen Truncation-Algorithmus von HOTP aus RFC 4226, mit wählbarem SHA-1, SHA-256 und SHA-512.
- Natives Web-Crypto-HMAC
- Codes werden über crypto.subtle-HMAC über den Big-Endian-Zeitschrittzähler abgeleitet. Base32-Dekodierung und Truncation laufen vollständig im Browser.
- Standard-otpauth://-URIs, null Abhängigkeiten
- Einrichtungs-URIs folgen dem Key Uri Format (otpauth://totp) mit Parametern für Aussteller, Algorithmus, Stellen und Intervall. Keine externen Bibliotheken, keine Netzwerkaufrufe.
Bewährte Praktiken
- Behandle das Secret wie ein Passwort
- Wer das Base32-Secret hat, kann jeden zukünftigen Code erzeugen. Bewahre es in einem Secrets-Manager auf, nie in der Versionsverwaltung, und bevorzuge hier Test-Secrets.
- Halte die Uhren synchron
- TOTP hängt von genauer Zeit ab. Aktiviere die Netzwerk-Zeitsynchronisation auf Servern und Geräten, damit die Codes innerhalb des Prüffensters zusammenpassen.
- Bleib bei den Standardwerten, sofern nicht anders nötig
- SHA-1, 6 Stellen und ein 30-Sekunden-Intervall maximieren die App-Kompatibilität. Wechsle nur dann auf 8 Stellen oder SHA-256/512, wenn dein Anbieter es vorschreibt.
FAQ zum TOTP-/2FA-Generator
Ist ein Online-TOTP-/2FA-Generator sicher zu nutzen?
otpauth://-URI und der erzeugte Code werden alle lokal mit der nativen Web-Crypto-API berechnet. Es gibt keine Netzwerkanfragen, kein Logging, keine Speicherung und keine Analyse, die an deine Eingabe gebunden ist — du kannst das überprüfen, indem du dich vom Internet trennst und zusiehst, wie das Tool weiterarbeitet. Das ist das Gegenteil eines zwielichtigen Generators, der dein Secret per POST an einen Server schickt, wo der Betreiber für immer deine Codes erzeugen könnte. Ein TOTP-Secret ist ein langlebiger gemeinsamer Schlüssel, daher bleibt die sicherste Gewohnheit, beim bloßen Experimentieren Wegwerf- oder Test-Secrets zu bevorzugen. Was ist TOTP und was ist ein Base32-Secret?
JBSWY3DPEHPK3PXP ist das bekannte RFC-Test-Secret. Warum unterscheidet sich der erzeugte Code von dem in der Authenticator-App meines Telefons?
Was ist der Unterschied zwischen TOTP und HOTP?
Kann ich 8-stellige Codes oder SHA-256 / SHA-512 verwenden?
otpauth://-URI hält diese Parameter fest, damit deine App das Secret korrekt hinterlegt. Wie füge ich dieses Secret zu Google Authenticator, Authy oder 1Password hinzu?
otpauth://-URI. Tippe in Google Authenticator oder Authy auf die Hinzufügen-Schaltfläche und wähle QR-Code scannen, um deine Kamera auf den QR-Code auf dem Bildschirm zu richten, oder wähle Einrichtungsschlüssel eingeben und füge das Base32-Secret mit dem passenden Kontonamen und Algorithmus ein. Bearbeite in 1Password einen Login-Eintrag, füge ein Feld Einmalpasswort hinzu und füge die otpauth://-URI direkt ein. Brauchst du ein eigenständiges QR-Bild für die Dokumentation? Nutze unseren QR-Code-Generator, und für die zufälligen Secrets und Wiederherstellungscodes drumherum den Zufallspasswort-Generator. Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Bcrypt-Hash-Generator & Verifizierer
Sicherheitswerkzeuge
Bcrypt-Passwort-Hashes online erzeugen und prüfen — einstellbarer Kostenfaktor, $2b$/$2a$/$2y$. 100 % im Browser; dein Passwort wird nie hochgeladen.
JWT-Dekodierer
Sicherheitswerkzeuge
Dekodieren Sie JWT-Token online mit unserem kostenlosen JWT-Dekodierer. Inspizieren Sie sofort Header, Payload, Signatur, Ablauf und Claims. 100 % Browser — Ihr Token verlässt niemals Ihr Gerät. Keine Anmeldung, kein Tracking.
JWT-Kodierer & -Generator
Sicherheitswerkzeuge
Kostenloser Online-JWT-Generator & -Kodierer. Erstellen Sie Header und Payload und signieren Sie sofort mit HS256, RS256 oder ES256. 100 % im Browser — Ihr Geheimnis und Ihr Schlüssel verlassen niemals Ihr Gerät.
JWT-Secret-Generator — HS256/384/512
Sicherheitswerkzeuge
Erzeuge ein starkes, RFC-konformes JWT-Secret für HS256/384/512 — 100 % im Browser, nie an einen Server gesendet. base64url, base64 oder hex; für .env kopieren.
MD5-Hash-Generator & Datei-Prüfsummen-Tool
Sicherheitswerkzeuge
MD5-, SHA-256-, SHA-1- & SHA-512-Hashes online kostenlos generieren. Text oder Dateien im Browser hashen, Prüfsummen verifizieren und Ergebnisse kopieren. Ohne Anmeldung.
Zufallspasswort-Generator — Anpassbar, Stark & Sicher
Sicherheitswerkzeuge
Starke Zufallspasswörter sofort generieren — kostenlos, ohne Anmeldung, 100 % im Browser. Länge & Zeichentypen anpassen, bis zu 50 auf einmal. Stärkeanzeige mit Entropie-Analyse.