Debug a TOTP configuration
Compare the digit count, period and algorithm configured on the server to confirm the code-generation parameters match.
Guide
The OTP tool takes a Base32 secret or a complete otpauth:// URI and computes the current and next TOTP in the browser against a time counter with WebCrypto HMAC. Digits can be 6, 7 or 8, the period 5–300 seconds and the algorithm SHA-1, SHA-256 or SHA-512, and the current parameters can be turned back into an otpauth URI and a QR code.
Updated 2026-09-102 min read
otpauth:// URI; the latter has its secret, issuer, account, digits, period and algorithm split out automatically.| Input | Output | Notes |
|---|---|---|
| A Base32 secret | The current 6-digit code | 30 s and SHA-1 by default |
otpauth://totp/... |
Parameters filled in automatically | Parsed locally as a URL |
| “Generate random secret” | A 160-bit Base32 secret | Generated locally |
qrcode library and contains the full secret; downloading or sharing the QR code is equivalent to sharing the key.otpauth URI for the authenticator's label only; the cryptographic result depends mainly on the secret, the time, the digit count, the period and the algorithm.Compare the digit count, period and algorithm configured on the server to confirm the code-generation parameters match.
Generate a standard otpauth QR code from a test secret and import it into an authenticator app.
Check the secret, algorithm, digit count, period and device time first; the page does not synchronise the clock over the network.
The QR code encodes the otpauth URI directly, secret included. Anyone who obtains the QR code can generate the same codes.
Secrets and codes are computed in browser memory with WebCrypto HMAC; the implementation deliberately writes nothing to local storage and sends nothing to a server, and a refresh clears everything.
Updated 2026-09-10
Generate two-factor codes (TOTP) locally; parse otpauth URIs, create random secrets and QR codes; secrets never persist
Paste a Base32 secret or a full otpauth:// URI (parameters are parsed automatically)
Most authenticators (Google and Microsoft Authenticator) use the defaults of 6 digits / 30 seconds / SHA-1.