TOTP-/HOTP-2FA-Generator
KryptoGenerieren Sie zeitbasierte (TOTP) oder zählerbasierte (HOTP) Einmalpasswörter aus einem Base32-Secret oder einer otpauth://-URI. Live-Countdown und scannbarer QR-Code — alles lokal in Ihrem Browser.
Remote-URLs werden nicht abgerufen; fügen Sie Ihr JSON direkt ein.
Mit Google Authenticator, Authy, 1Password oder jeder TOTP-App scannen.
Auf dieser Seite
Was ist ein TOTP?#
Ein zeitbasiertes Einmalpasswort (TOTP) ist der rotierende 6-stellige Code, den Ihre Authenticator-App neben jedem Konto anzeigt. Darunter steckt ein HMAC: das geteilte Secret und das aktuelle Zeitfenster werden gemeinsam gehasht und das Ergebnis zu einem kurzen numerischen Code gekürzt. Weil der Code von der Uhr abhängt, rollt er von selbst alle 30 Sekunden weiter — und genau das macht „etwas, das Sie haben“ (das Secret) als zweiten Faktor nutzbar, ohne dass zwischen Ihrem Telefon und dem Dienst ein Netzwerk-Roundtrip nötig wäre.
Diese Seite ist ein voll funktionsfähiger TOTP- und HOTP-Generator. TOTP leitet den Code aus der aktuellen Zeit ab und aktualisiert sich selbst, sobald die Periode verstreicht; HOTP leitet ihn aus einem Zähler ab, der bei jeder Verwendung weiterschaltet. Sie können ein Base32-Secret direkt eintippen oder eine otpauth://-URI einfügen (die Zeichenkette, die in den QR-Codes kodiert ist, die Ihnen Dienste beim Aktivieren von 2FA zeigen) und haben daraufhin jedes Feld automatisch ausgefüllt. Die Seite gibt außerdem die kanonische otpauth://-URI aus und erzeugt einen scannbaren QR-Code, sodass Sie ein neues Konto direkt von hier in eine Telefon-App einrichten können.
Alles läuft lokal: Das Secret verlässt niemals die Seite, und es gibt keinen Online-Aufruf an einen Authentifizierungsdienst.
Verwendung#
- Wählen Sie einen Modus: TOTP (Zeit) (zeitbasiert, aktualisiert sich selbst) oder HOTP (Zähler) (zählerbasiert, schaltet manuell weiter).
- Geben Sie das Secret an. Fügen Sie entweder das Secret (Base32) in das Secret-Feld ein oder fügen Sie eine
otpauth://-URI in das URI-Feld ein, um alle Parameter auf einmal automatisch auszufüllen. - Legen Sie die Bezeichnung für Aussteller und Konto fest (diese beeinflussen nur, wie der Eintrag in einer Authenticator-App heißt, nicht den Code selbst).
- Wählen Sie den Algorithmus (SHA-1 / SHA-256 / SHA-512 — SHA-1 ist der universelle Standard), die Stellen (6 / 7 / 8 — 6 ist der Regelfall) und — bei TOTP — die Periode (s) (Standard 30). Bei HOTP setzen Sie den Zähler und klicken nach jeder Verwendung auf Nächster Code, um ihn weiterzuschalten.
- Klicken Sie auf Erzeugen. Der Code erscheint groß mit einem Countdown-Ring, der die verbleibenden Sekunden der aktuellen Periode anzeigt; darunter stehen die
otpauth://-URI und ein scannbarer QR-Code.
Eckpunkte#
- TOTP und HOTP an einem Ort. Wechseln Sie zwischen der zeitbasierten und der zählerbasierten Variante, ohne das Secret neu einzugeben.
- Tolerante Base32-Behandlung. Leerzeichen, Bindestriche, Kleinbuchstaben und fremde Zeichen werden automatisch bereinigt, sodass Secrets aus unhandlichen Formaten trotzdem funktionieren.
- URI-Import und -Export. Fügen Sie eine
otpauth://-URI ein, um jedes Feld zu füllen, oder kopieren Sie die erzeugte URI, um ein neues Konto woanders einzurichten. - Live-QR-Code. Wird direkt in der Seite aus der URI gerendert und lässt sich in jede Authenticator-App scannen.
- Countdown-Ring. Ein visueller Countdown bis zum nächsten Wechsel, damit Sie wissen, ob der Code, den Sie gerade tippen wollen, noch genug Zeit hat.
- Kein Upload. Erzeugung, Parsing und QR-Rendering laufen vollständig lokal; das Secret wird niemals übertragen.
Konkretes Beispiel#
Der Referenz-Seed aus RFC 6238 ist die ASCII-Zeichenkette 12345678901234567890, die in Base32 GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ lautet. Tippen Sie dieses Secret ein, setzen Sie Stellen auf 8 und Periode (s) auf 30, und die Codes stimmen exakt mit den veröffentlichten Testvektoren überein:
- SHA-1 zum Zeitpunkt 59 Sekunden nach der Epoche →
94287082 - SHA-256 im selben Augenblick →
46119246 - SHA-512 im selben Augenblick →
90693936
Zum Zeitpunkt 1111111109 (ein weit in der Zukunft liegendes Datum) liefert SHA-1 07081804. Das sind dieselben Known-Answer-Werte, gegen die die Test-Suite dieses Werkzeugs prüft — ein zuverlässiger Weg, die Korrektheit eines Generators zu bestätigen. Im alltäglichen 2FA-Einsatz verwenden Dienste 6 Stellen, SHA-1 und eine Periode von 30 Sekunden — stellen Sie die Stellen zurück auf 6 und dasselbe Secret liefert den rotierenden Code, den eine Authenticator-App anzeigen würde.
FAQ#
Mein Code stimmt nicht mit der App auf meinem Telefon überein. Was ist falsch?#
Fast immer das Secret oder die Uhr. Bestätigen Sie zuerst, dass das Base32-Secret identisch ist — kopieren Sie es erneut von der Einrichtungsseite des Dienstes, denn ein einziges falsches Zeichen verändert alles. Prüfen Sie dann die Parameter: Die meisten Dienste nutzen SHA-1, 6 Stellen und eine Periode von 30 Sekunden; wenn der Dienst SHA-256 oder 8 Stellen verwendet, Sie aber SHA-1 / 6 eingestellt haben, weichen die Codes ab. Stellen Sie schließlich sicher, dass die Uhr Ihres Geräts korrekt ist — TOTP verzeiht eine kleine Abweichung, aber mehr als etwa 30 Sekunden Versatz führen zu Fehlern.
Was ist der Unterschied zwischen TOTP und HOTP?#
TOTP verwendet die aktuelle Zeit als beweglichen Faktor und schaltet deshalb automatisch jede Periode weiter. HOTP verwendet einen einfachen Zähler, der bei jedem Verbrauch eines Codes inkrementiert wird, weshalb beide Seiten darüber synchron bleiben müssen, wie viele Codes bereits verwendet wurden. TOTP ist, was heute nahezu jeder consumer-2FA-Ablauf verwendet, weil es über die Uhr hinaus keine Synchronisation braucht.
Ist es sicher, mein Secret in eine Webseite einzugeben?#
Das Secret verlässt diese Seite nie — Erzeugung, Parsing und QR-Rendering laufen vollständig lokal in Ihrem Browser, ohne jeden Netzwerkaufruf. Dennoch gilt für ein produktives 2FA-Secret, das Sie selbst kontrollieren: Die sicherste Praxis ist, es in einer Umgebung zu erzeugen und zu speichern, der Sie voll vertrauen, statt in einer beliebigen Webseite — und die Wiederherstellungscodes des Dienstes aufzubewahren.
Warum füllt das Einfügen meiner otpauth://-URI alles aus?#
Diese URI ist das Standardformat, das Authenticator-Apps austauschen: Sie kodiert Typ, Aussteller, Konto, Secret, Algorithmus, Stellen und Periode (oder Zähler) in einer einzigen Zeichenkette. Der Parser liest diese Felder aus und füllt das Formular — genau das geschieht auch, wenn Sie einen QR-Code mit dem Telefon scannen: Der QR ist schlicht diese URI, gerendert als Bild.