Zum Inhalt springen
Identity-Tools

TOTP-Codes aus einem Geheimnis erzeugen, ohne dass es den Browser verlässt

Base32-Geheimnis oder otpauth-URL einfügen. Die Codes rechnet WebCrypto in deinem eigenen Browser aus, der Countdown zeigt, wie lange der aktuelle gilt, und die Abweichung zwischen deiner Uhr und unserer wird angezeigt, weil eine falsche Uhr der übliche Grund ist, warum ein richtiger Code abgelehnt wird.

Füg das Geheimnis ein, das eine Authenticator-App scannen würde, oder die komplette otpauth://-URL aus dem QR-Code.

Dieses Tool läuft im Browser und braucht JavaScript.

Beobachtungen, keine Urteile. Deine Eingabe wird für dieses Ergebnis verarbeitet und in ein Nutzungsjournal geschrieben, das die Datenschutzerklärung beschreibt; sonst wird nichts gespeichert.

Einen 2FA-Login damit testen

  1. Geheimnis aus der Einrichtungsseite holen

    Die meisten Dienste bieten neben dem QR-Code eine Textform an, meist als Einrichtungsschlüssel oder manuelle Eingabe bezeichnet. Wenn nicht: Der QR-Code enthält eine otpauth-URL, und die liest das Tool im Ganzen.

  2. Parameter prüfen

    Algorithmus, Stellen und Periode kommen aus der URL. Hast du nur das rohe Geheimnis, lass die Voreinstellungen stehen; fast jeder Anbieter nutzt SHA-1, sechs Stellen und dreißig Sekunden.

  3. Mit der Authenticator-App vergleichen

    Der Code hier sollte zum selben Zeitpunkt mit dem der App für dasselbe Konto übereinstimmen. Weicht er bei null Drift ab, ist es meist ein anderes Geheimnis; weicht er bei Drift ab, ist es eine Uhr.

  4. Geheimnis dort ablegen, wo der Agent es nutzen kann

    Für einen automatisierten Login gehört das Geheimnis in die Zugangsdaten im Tresor. Der Agent bekommt einen Platzhalter, der Tresor tippt den Code.

Wie ein TOTP-Code entsteht und warum diese Seite ihn offline berechnen kann

Ein zeitbasiertes Einmalpasswort nach RFC 6238 ist ein HMAC über einen Zähler, und der Zähler ist die aktuelle Unix-Zeit geteilt durch die Periode, meist 30 Sekunden. Schlüssel des HMAC ist das gemeinsame Geheimnis, die Base32-Zeichenkette, die eine Authenticator-App beim Scannen des QR-Codes speichert. Das HMAC-Ergebnis wird nach dem Verfahren aus RFC 4226 auf sechs oder acht Ziffern gekürzt. Das ist der ganze Algorithmus, und jeder Teil davon steht im Browser zur Verfügung: SubtleCrypto signiert den HMAC, die Uhr der Seite liefert den Zähler, der Rest ist Rechnen.

Was das Tool zeigt

Den aktuellen Code, den nächsten und einen Countdown bis zum Periodenwechsel. Die Parameter werden aus der otpauth-URL gelesen, wenn du eine einfügst, und lassen sich sonst von Hand setzen: Algorithmus (SHA-1 als Standard; SHA-256 und SHA-512 bei manchen Anbietern), Stellen (sechs oder acht) und Periode. Label und Issuer aus der URL werden angezeigt, damit du siehst, zu welchem Konto das Geheimnis gehört.

Die Zeitabweichung ist das Einzige, was eine Seite nicht allein berechnen kann. Das Tool schickt eine einzige Anfrage an diese Website, die weder Geheimnis noch Code enthält, liest die Serverzeit aus der Antwort und zeigt die Differenz zu deiner Geräteuhr. Eine Abweichung von mehr als ein paar Sekunden erklärt die meisten Fälle, in denen ein richtiger Code abgelehnt wird: Server akzeptieren üblicherweise einen Zeitschritt nach vorn und hinten, und eine Uhr, die eine Minute falsch geht, erzeugt Codes, die immer für das falsche Fenster gelten.

Was die Seite nie verlässt

Geheimnis, otpauth-URL und die erzeugten Codes bleiben im Browser-Tab. Keine Anfrage transportiert sie, es gibt keine Erzeugung auf dem Server, und mit dem Schließen des Tabs sind sie weg. Das lässt sich im Netzwerk-Panel der Entwicklerwerkzeuge nachprüfen, und so sollte man eine solche Behauptung auch prüfen, statt sie zu glauben.

Gedacht ist das Tool zum Testen: für Entwickler, die gerade TOTP in einen Login eingebaut haben und sehen wollen, ob der Server Codes annimmt; für alle, die einen automatisierten Login einrichten und vorher bestätigen wollen, dass das Geheimnis im Tresor das richtige ist. Nicht gedacht ist es als Ersatz für die Authenticator-App. Ein Browser-Tab hat kein Backup, keine Gerätebindung und keine Sperre.

Wie der Tresor ein TOTP-Geheimnis benutzt

Zugangsdaten bei Browserberg können neben dem Passwort ein TOTP-Geheimnis tragen. Beim Login berechnet der Tresor den aktuellen Code und tippt ihn über einen Platzhalter ins Feld, genauso wie das Passwort. Der Agent, der den Login steuert, fordert den Code per Platzhalter an und sieht weder Geheimnis noch Code; im Kontext des Modells taucht beides nie auf. Die Freigabe ist an die Website gebunden, ein für ein Portal gespeichertes Geheimnis wird also nie auf einem anderen getippt, und ein in einem Lauf verbrauchter Code wird im nächsten nicht wiederverwendet.

Fragen zu TOTP-Codes

Was ist ein TOTP-Code?

Eine sechs- oder achtstellige Zahl, abgeleitet aus einem gemeinsamen Geheimnis und der aktuellen Zeit, gültig für eine Periode von meist 30 Sekunden. Authenticator-Apps berechnen sie lokal; der Server berechnet dieselbe Zahl und vergleicht.

Kann ich hier gefahrlos ein Geheimnis einfügen?

Das Geheimnis bleibt im Browser-Tab, keine Anfrage transportiert es, und das lässt sich im Netzwerk-Panel prüfen. Nimm trotzdem das Geheimnis eines Testkontos, wo das geht; ein Browser-Tab ist kein Ort für ein Produktivgeheimnis.

Warum lehnt der Server einen Code ab, den diese Seite anzeigt?

Schau auf die Abweichung neben dem Countdown. Server akzeptieren nur ein enges Fenster von Zeitschritten; eine Geräteuhr, die eine Minute falsch geht, liefert Codes, die für den Server schon abgelaufen sind. Die andere Ursache ist ein falsches Geheimnis.

Kann ich das als Authenticator-App verwenden?

Solltest du nicht. Kein Backup, keine Gerätebindung, keine Sperre. Es ist dafür da, zu testen, ob Geheimnis und Server zusammenpassen.

Wie loggt sich ein Agent mit 2FA ein?

Die Zugangsdaten im Tresor tragen das TOTP-Geheimnis. Beim Login berechnet der Tresor den Code und tippt ihn per Platzhalter, sodass das Modell weder Geheimnis noch Code sieht. pushTAN oder SMS-Codes gibt eine Person über die Live-Ansicht mit Übernahme ein.

Parameter, die der Generator versteht

Geheimnis Base32 (RFC 4648), mit oder ohne Padding und Leerzeichen; auch aus dem secret-Parameter einer otpauth-URL
Algorithmus SHA-1 (Standard, bei den meisten Anbietern), SHA-256, SHA-512
Stellen 6 (Standard) oder 8
Periode 30 Sekunden als Standard; jeder Wert aus der otpauth-URL
Zeitabweichung Differenz zwischen deiner Geräteuhr und der des Servers, aus einer Anfrage ohne Geheimnis und ohne Code
Wo es läuft Vollständig im Browser mit SubtleCrypto; keine Erzeugung auf dem Server, nichts wird gespeichert

Stand: 2026-09-08

Den Code vom Tresor tippen lassen

Fünf Browserstunden, keine Karte. Zugangsdaten mit TOTP-Geheimnis anlegen und einen Login fahren, dessen Geheimnis das Modell nie sieht.