Vergleichen Sie Einstellungen und Codes mit einem Base32-Testgeheimnis. TOTP nutzt die Uhrzeit, HOTP einen vorgegebenen Zählerstand.
Läuft lokal in deinem BrowserVergleichen Sie mit einem Wegwerf-Secret. Uhrabweichung, Speicherung, Wiederherstellung und Limits benötigen Serverkontrollen.
Diese Werkbank macht aus einem Base32-Secret den Einmalcode, den eine Authenticator-App anzeigen würde — mit dem Algorithmus, der Stellenzahl und dem Zeitraum oder Zähler Ihrer Wahl. Sie erzeugt außerdem die otpauth://-URI, die ein QR-Code tragen würde.
Der HMAC entsteht im Tab über Web Crypto. Das Werkzeug selbst sendet während der Berechnung keine Anfrage, Secret und Code bleiben also im Browser.
Der Code ist ein HMAC über den verwendeten Zähler: Der Zähler wird mit dem Secret signiert, das letzte Byte der Signatur wählt ein 4-Byte-Fenster (dynamische Trunkierung), und dieser Wert wird modulo 10^Stellen reduziert. TOTP ist dieselbe Funktion mit einem Zähler aus der Unix-Zeit geteilt durch den Zeitraum; deshalb wechselt ein TOTP-Code von selbst, während ein HOTP-Code auf den nächsten Zähler wartet.
Das Werkzeug stimmt mit den veröffentlichten Testvektoren überein. Mit dem RFC-Secret liefern die HOTP-Zähler 0 bis 5 die Werte 755224, 287082, 359152, 969429, 338314 und 254676. Eine Uhr im Zeitfenster des RFC, das T=59 enthält, liefert 94287082 mit SHA-1 und 8 Stellen, und die späteren Vektoren (T=1111111109 und T=20000000000) liefern 07081804 und 65353130.
Die Prüfung wiederholt die verwendeten Parameter und erinnert an zwei Serverpflichten: Ein HOTP-Zähler muss vom Prüfer atomar erhöht und gespeichert werden, und ein Secret mit weniger als 20 dekodierten Bytes ist für den Produktivbetrieb zu kurz. Ein Zeitraum ungleich 30 Sekunden und SHA-256 oder SHA-512 sind gültig, werden aber von weniger Apps und Servern akzeptiert.
Hier wird kein eingetippter Code validiert, keine Uhrabweichung des Servers gemessen und nicht bewiesen, dass das Secret zum eigenen Konto gehört. Vergleichen Sie einen erzeugten Code mit der Implementierung, die ihn prüfen soll, und behandeln Sie den Einrichtungsablauf des Authenticators als maßgeblich.
Die URI folgt dem otpauth://-Schlüsselformat — Secret, Aussteller, Algorithmus (SHA1, SHA256 oder SHA512), Stellen sowie Zeitraum oder Zähler — also der Zeichenfolge, die ein QR-Code kodiert. Das Secret wird ohne Leerzeichen und Auffüllung in Base32 zurückgeschrieben, und die Beschriftung verbindet Aussteller und Kontoname.
HMAC und URI entstehen im Tab, und das Werkzeug sendet keine Anfrage; Secret und Code verlassen den Browser also nicht. Verwenden Sie beim Vergleich von Implementierungen ein Wegwerf-Test-Secret und bewahren Sie Produktions-Seeds in Systemen auf, die sie speichern dürfen.