TOTP- en HOTP-codegenerator
Genereer TOTP- en HOTP-codes voor 2FA uit een Base32-geheim of otpauth://-URI, met SHA-1, SHA-256 of SHA-512, een live aftelling en een QR-code.
Een 2FA-geheim is net zo gevoelig als een wachtwoord. Alles hier draait lokaal in je browser: het geheim, de codes en de QR-code worden nergens naartoe gestuurd.
- Vorige code
- —
- Huidige code
- —
- Volgende code
- —
TOTP-codes hangen af van de klok van je apparaat. Komen ze niet overeen, controleer dan of de klok automatisch wordt ingesteld.
Een authenticator-app instellen
Voeg een uitgever en een accountnaam toe en scan dan de QR-code of kopieer de otpauth://-link naar je authenticator-app.
Zo genereer je TOTP-codes
- Plak een Base32-geheim (bijvoorbeeld
JBSWY3DPEHPK3PXP) of een volledigeotpauth://-link in Geheim (Base32) of otpauth://-URI. Spaties, streepjes, kleine letters en ontbrekende=-opvulling worden geaccepteerd. - De codes verschijnen terwijl je typt, of als je op Codes tonen klikt. Een geplakte URI vult de velden Type, Algoritme, Cijfers, Periode (seconden), Uitgever en Account automatisch in.
- Lees de Huidige code in het midden, met de Vorige code en de Volgende code aan weerszijden. De balk eronder telt de seconden af tot de code verandert, en Code kopiëren kopieert hem zonder spatie.
- Voor codes op basis van een teller kies je HOTP (op basis van een teller), stel je de Teller in en ga je met Volgende teller een stap verder.
- Wil je een nieuw 2FA-geheim maken, klik dan op Nieuw willekeurig geheim. Vul Uitgever en Account in en scan de QR-code met een authenticator-app, klik op URI kopiëren of op QR-code downloaden (PNG).
Hoe TOTP en HOTP werken
HOTP (RFC 4226) berekent een HMAC van een teller van 8 bytes met het gedeelde geheim en past daarna dynamische truncatie toe: de laatste vier bits van de HMAC kiezen een offset, vanaf daar worden vier bytes gelezen, het hoogste bit wordt gewist en het getal wordt modulo 10^cijfers genomen. Het resultaat is een code van 6 tot 8 cijfers.
TOTP (RFC 6238) is HOTP waarbij de teller de huidige tijdstap is: T = floor(Unix-tijd / periode), met standaard een periode van 30 seconden. Je telefoon en de server berekenen onafhankelijk van elkaar dezelfde code, omdat ze het geheim en (ongeveer) dezelfde klok delen. Daarom worden de Vorige code en de Volgende code ook getoond: servers accepteren meestal één stap ervoor of erna om klokafwijking op te vangen.
De HMAC wordt berekend met de Web Crypto API van je browser, met SHA-1, SHA-256 of SHA-512. SHA-1 met 6 cijfers en 30 seconden is wat bijna elke dienst gebruikt; SHA-256 en SHA-512 zijn toegestaan door RFC 6238, maar sommige apps negeren ze, dus wijzig de standaardwaarden alleen als de dienst daarom vraagt.
De otpauth://-URI en de QR-code
Authenticator-apps worden ingesteld met een URI zoals otpauth://totp/Example:alice@example.com?secret=…&issuer=Example&algorithm=SHA1&digits=6&period=30, meestal getoond als QR-code. Deze tool leest zulke URI’s (ook labels met procentcodering zoals ACME%20Co) en maakt nieuwe. De QR-code wordt lokaal getekend op basis van de URI onder otpauth://-URI.
Een nieuw willekeurig geheim is 20 bytes (160 bits) lang, de lengte die RFC 4226 aanbeveelt, en komt van crypto.getRandomValues.
Beveiligingstips
- Het geheim ís de tweede factor: wie het heeft, kan jouw codes maken. Plak de geheimen van belangrijke accounts niet op gedeelde computers en deel nooit screenshots van de QR-code.
- Alles wordt lokaal berekend; er gaat niets over het netwerk. Sluit het tabblad als je klaar bent.
- Bewaar de back-upcodes van de dienst: een geheim dat je kwijtraakt, is niet te herstellen.
Veelgestelde vragen
Waarom komt mijn code niet overeen met die in mijn app?
Controleer eerst de klok van je apparaat: TOTP-codes veranderen elke periode, dus een klok die meer dan ongeveer 30 seconden afwijkt, geeft andere codes. Controleer daarna of het algoritme, het aantal cijfers en de periode overeenkomen met wat de dienst gebruikt.
Werkt deze tool met Google Authenticator en vergelijkbare apps?
Ja. De tool volgt RFC 6238 en het otpauth-URI-formaat dat die apps gebruiken. Scan de QR-code of typ het Base32-geheim in de app, en beide horen dezelfde Huidige code te tonen.
Wat is het verschil tussen TOTP en HOTP?
TOTP schuift op met de tijd, dus een code verloopt na de periode. HOTP schuift op met een teller die elke keer dat een code wordt gebruikt, omhooggaat; een code blijft dus geldig tot hij is gebruikt of vervangen.
Kan ik deze tool als dagelijkse authenticator gebruiken?
Hij is bedoeld voor testen, ontwikkeling en herstel. Een app op je telefoon of een hardwaresleutel is veiliger voor dagelijks gebruik, omdat je het geheim dan niet telkens in een webpagina hoeft te plakken.
Zijn de berekeningen gecontroleerd aan de hand van de standaarden?
Ja. De tool is getest met de HOTP-waarden uit RFC 4226, bijlage D, en de TOTP-waarden uit RFC 6238, bijlage B, voor SHA-1, SHA-256 en SHA-512.
Vergelijkbare tools
- HMAC-generator Bereken een HMAC-SHA1, SHA-256, SHA-384 of SHA-512 met een tekst-, hex- of Base64-sleutel, krijg hex en Base64 en controleer een webhook-signature.
- Wachtwoord generator Gratis wachtwoord generator die in je browser sterke, willekeurige wachtwoorden van 4 tot 128 tekens maakt. Er wordt niets opgeslagen of verzonden.
- QR-code maken Maak gratis QR-codes voor links, tekst, wifi, contacten, e-mail en sms. Voeg kleuren en een logo toe en download als PNG of SVG. Alles blijft lokaal.
- Shamir Secret Sharing Splits een wachtwoord of herstelzin op in N delen, zodat elke M ervan het geheim herstellen, met Shamir Secret Sharing over GF(256), lokaal in je browser.