Enter the base32 shared secret (as shown next to a QR code in Google Authenticator / Authy) and the tool computes one-time passwords locally — nothing is sent to any server.
Supported:
- TOTP (RFC 6238): time-based codes derived from the current UNIX time and a step (30s or 60s). This is what Google Authenticator shows for most 2FA accounts.
- HOTP (RFC 4226): counter-based codes derived from a shared counter value.
- HMAC algorithms: SHA-1 (the RFC default, used by virtually every authenticator app), SHA-256, SHA-512.
- 6-digit (default) or 8-digit output.
- "Show next N codes" — preview the next several TOTP windows or HOTP counters, useful for testing drift.
- Export an otpauth:// URI (with optional issuer + account label) so the account can be re-imported into any authenticator app.
Implementation notes:
- HOTP uses the standard dynamic-truncation algorithm: HMAC the 8-byte big-endian counter, take the low 4 bits of the last byte as offset, extract a 31-bit integer, then mod 10^digits.
- TOTP is HOTP with counter = floor(unixTime / step).
- Secret decoding is RFC 4648 base32 (no padding required). Spaces are ignored so pasted secrets with separators still work.
Use cases: verifying your 2FA seed produces the same code as a phone, building TOTP verification into a login flow, teaching HMAC-based OTP, or migrating a 2FA account to a new device via otpauth://.