DevToolPal
DE

TOTP-/HOTP-Code-Generator

Erzeugt Zwei-Faktor-Codes (TOTP und HOTP) aus einem Base32-Geheimnis oder einer otpauth://-URI, mit SHA-1/256/512, 6–8 Stellen und Live-Countdown.

Läuft lokal, wird nie hochgeladen

Optionen

Typ
Stellen
Zeitintervall

Geheimnis (Base32) oder otpauth://-URI

Codes

Das Ergebnis erscheint hier

Was das Tool macht

Zwei-Faktor-Apps wie Google Authenticator, Microsoft Authenticator und 1Password zeigen sechsstellige Codes, die sich alle 30 Sekunden ändern. Jeder Code ist ein Einmalpasswort, das aus einem gemeinsamen Geheimnis berechnet wird: TOTP (RFC 6238) nutzt die Zeit, HOTP (RFC 4226) einen Zähler. Dieses Tool berechnet dieselben Codes aus dem Geheimnis, damit Sie eine 2FA-Einrichtung testen, eine Server-Implementierung debuggen oder prüfen können, wie ein Code lauten sollte.

Es zeigt den aktuellen Code mit Live-Countdown sowie den vorherigen und den nächsten Code, die Server oft akzeptieren, um kleine Uhrabweichungen abzudecken.

So geht’s

  1. Fügen Sie das Base32-Geheimnis ein (Buchstaben A–Z und Ziffern 2–7; Leerzeichen und Groß-/Kleinschreibung sind egal) oder eine vollständige otpauth://-URI aus einem QR-Code. Klicken Sie auf Beispiel, um es auszuprobieren.
  2. Wählen Sie TOTP oder HOTP und stellen Sie Algorithmus, Stellen und Zeitintervall passend zum Konto ein. Einstellungen in einer otpauth-URI haben Vorrang.
  3. Bei HOTP geben Sie den Zähler ein und gehen mit Zähler +1 die Codes durch.
  4. Kopieren Sie den aktuellen Code. Der Countdown zeigt, wie lange er gültig bleibt.

Beispiel

Das Demo-Geheimnis JBSWY3DPEHPK3PXP ist die Base32-Form der Bytes „Hello!“ gefolgt von 0xDEADBEEF. Die folgende URI, wie sie in einem QR-Code steckt, beschreibt ein Konto, das es mit den Standardeinstellungen verwendet:

otpauth://totp/Example:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example&algorithm=SHA1&digits=6&period=30

Zur Unix-Zeit 1700000000 ergibt dieses Geheimnis den Code 324 550, und das Zeitfenster läuft noch 10 Sekunden.

So wird der Code berechnet

Das Geheimnis wird von Base32 in Bytes dekodiert. Bei TOTP ist der Zähler die Unix-Zeit in Sekunden geteilt durch das Zeitintervall, abgerundet. Der Zähler wird als 8 Bytes geschrieben und mit HMAC und dem Geheimnis signiert. Die dynamische Kürzung wählt anhand des letzten Nibbles 4 Bytes aus der HMAC-Ausgabe, und die Zahl wird auf die gewünschte Stellenzahl reduziert, wobei führende Nullen erhalten bleiben.

FAQ

› Warum stimmt mein Code nicht mit dem in meiner Authenticator-App überein?

TOTP-Codes hängen von der Uhr ab. Prüfen Sie zuerst, ob die Gerätezeit automatisch gestellt wird. Prüfen Sie dann, ob Algorithmus, Stellenzahl und Zeitintervall zum Konto passen. Die meisten Dienste verwenden SHA-1, 6 Stellen und 30 Sekunden, und Authenticator-Apps ignorieren andere Einstellungen, sofern der QR-Code sie nicht angibt.

› Was ist der Unterschied zwischen TOTP und HOTP?

TOTP (RFC 6238) verwendet die aktuelle Zeit geteilt durch das Zeitintervall als Zähler, daher ändert sich der Code alle 30 Sekunden. HOTP (RFC 4226) verwendet einen Zähler, der bei jedem genutzten Code um eins steigt. Beide schicken Geheimnis und Zähler durch HMAC und behalten die letzten 6 bis 8 Ziffern.

› Wird mein Geheimnis gespeichert oder irgendwohin gesendet?

Nein. Die Codes werden in Ihrem Browser mit der Web Crypto API berechnet. Das Geheimnis wird nicht gespeichert, nicht in die Adressleiste geschrieben und nicht in Freigabelinks aufgenommen; ein geteilter Link enthält nur die Einstellungen. Ein 2FA-Geheimnis gewährt trotzdem vollen Zugriff auf den zweiten Faktor, fügen Sie also nur eigene Geheimnisse ein.

› Kann ich damit Zwei-Faktor-Authentifizierung für meine eigene App einrichten?

Ja. Klicken Sie auf Zufälliges Geheimnis, um ein 160-Bit-Base32-Geheimnis zu erzeugen, geben Sie es Ihren Nutzern als otpauth://-URI oder QR-Code und vergleichen Sie die Codes Ihres Servers mit den hier angezeigten. Server akzeptieren meist auch den vorherigen und den nächsten Code, um Uhrabweichungen auszugleichen.