Ratgeber

Wie man OTP generiert: HOTP- und TOTP-Codes aus Base32

Erfahren Sie, wie man OTP generiert: Schritt-für-Schritt-Anleitung zur Erstellung von TOTP- und HOTP-Einmalcodes aus Base32-Schlüsseln mit HMAC-SHA1.

Tool OTP Generator

Einmalpasswörter (One-Time Passwords oder OTP) sichern moderne Benutzerkonten als zweiter Faktor zuverlässig ab. Wenn Sie wissen möchten, wie man OTP generiert, benötigen Sie dafür lediglich den geheimen Base32-Schlüssel Ihres Kontos sowie die passenden Authentifizierungsparameter. Sie können zeitbasierte TOTP-Codes oder zählerbasierte HOTP-Codes direkt im Browser ohne zusätzliche Software berechnen.

Funktionsweise von zeit- und zählerbasierten Einmalpasswörtern

Einmalpasswörter basieren auf kryptografischen Standards unter Verwendung des Algorithmus HMAC-SHA1. Dabei existieren zwei grundlegende Verfahren:

  • TOTP (RFC 6238): Zeitbasierte Codes nutzen die aktuelle Unix-Zeit, geteilt durch ein festes Intervall (üblicherweise 30 Sekunden). Der Code wechselt automatisch nach Ablauf dieses Zeitfensters.
  • HOTP (RFC 4226): Zählerbasierte Codes verändern sich nicht mit der Zeit, sondern mit jedem Anmeldeversuch über einen inkrementellen Zählerwert.

Beide Verfahren berechnen aus dem gemeinsamen Base32-Geheimschlüssel und dem jeweiligen Zähler oder Zeitstempel eine sechs- oder achtstellige Ziffernfolge.

Schritt-für-Schritt-Anleitung zur Code-Erzeugung

Mit dem OTP Generator erstellen Sie standardkonforme Einmalcodes in wenigen Schritten:

  1. Base32-Schlüssel eingeben: Fügen Sie den geheimen Textschlüssel in das Eingabefeld ein. Leerzeichen werden automatisch herausgefiltert und fehlende Auffüllzeichen am Ende stellen kein Problem dar.
  2. Modus festlegen: Wählen Sie TOTP für zeitabhängige Codes oder HOTP für zählerbasierte Prüfcodes.
  3. Stellenzahl wählen: Bestimmen Sie die gewünschte Ausgabelänge, standardmäßig sechs Ziffern oder alternativ acht Ziffern.
  4. Intervall oder Zähler anpassen: Belassen Sie das TOTP-Intervall bei 30 Sekunden oder tragen Sie bei HOTP den aktuellen ganzzahligen Zählerstand ein.
  5. Berechnung ausführen: Lesen Sie den generierten Prüfcode ab. Im TOTP-Modus sehen Sie zusätzlich die verbleibende Restzeit des aktuellen Zeitfensters.

Wenn Sie Authentifizierungsschlüssel für mobile Apps bereitstellen, hilft Ihnen der QR-Code-Generator, um Registrierungs-URLs direkt als scanbaren Code abzubilden.

Praktisches Beispiel für einen Standard-TOTP-Code

Angenommen, Sie möchten die Authentifizierung für ein Konto mit dem Base32-Geheimnis JBSWY3DPEHPK3PXP überprüfen:

  • Eingabeschlüssel: JBSWY3DPEHPK3PXP
  • Modus: TOTP (zeitbasiert)
  • Stellenzahl: 6 Ziffern
  • Zeitintervall: 30 Sekunden

Nach dem Starten der Berechnung ermittelt das Werkzeug anhand des aktuellen Zeitstempels den aktuellen sechsstelligen Zifferncode und zeigt an, wie viele Sekunden dieser Code noch gültig bleibt. Das Geheimnis selbst wird im Ausgabefeld aus Sicherheitsgründen nicht wiederholt.

Typische Fehlerquellen und wie Sie diese vermeiden

  • Ungültige Zeichen im Schlüssel: Base32 erlaubt nur die Buchstaben A bis Z und die Ziffern 2 bis 7. Zeichen wie 0, 1, 8 oder 9 führen zu einer Fehlermeldung.
  • Abweichende Systemzeit: Wenn die lokale Systemuhr nicht synchronisiert ist, weicht der berechnete TOTP-Zähler vom Server ab und der Code wird abgelehnt.
  • Falscher HOTP-Zähler: Stimmt der Zählerstand nicht exakt mit dem Serverzähler überein, schlägt die Verifikation fehl.
  • Kommazahlen bei Parametern: Zähler und Zeitintervalle müssen stets als positive Ganzzahlen übergeben werden.

Technische Grenzen und Einschränkungen

Die Berechnung erfolgt strikt nach RFC 4226 und RFC 6238 mit HMAC-SHA1. Andere Hash-Funktionen wie SHA-256 oder SHA-512 werden nicht unterstützt. Bei unzulässigen Zeichen, fehlerhaften Parameterwerten oder fehlendem Schlüssel wird kein Ersatzwert generiert, sondern ein Verarbeitungsfehler ausgegeben.

Häufig gestellte Fragen (FAQ)

Welche Form muss das Geheimnis haben?

Das Geheimnis muss als gültige Base32-Zeichenkette vorliegen. Leerzeichen am Anfang, Ende oder zwischen den Zeichen werden automatisch entfernt. Auch fehlende Gleichheitszeichen am Ende werden toleriert.

Was ist der Unterschied zwischen HOTP und TOTP?

HOTP berechnet den Einmalcode auf Basis eines manuell vorgegebenen Zählers, der bei jedem Schritt erhöht wird. TOTP ermittelt den Zähler automatisch aus der aktuellen Unix-Zeit und der festgelegten Intervall-Länge.

Warum weicht der generierte TOTP-Code von meiner App ab?

Prüfen Sie, ob Ihre App ein abweichendes Intervall (beispielsweise 60 statt 30 Sekunden) oder acht statt sechs Ziffern verwendet. Zudem kann eine falsche lokale Uhrzeit auf Ihrem Gerät zu abweichenden Zeitfenstern führen.

Tool

OTP Generator