TOTP generator and clock-skew test
Generate SHA-1, SHA-256, or SHA-512 time-based codes with 6 or 8 digits and inspect values around refresh boundaries.
Compare app and server output, diagnose time drift, validate otpauth parameters, and create test fixtures from one private browser workspace.
!Use temporary test secrets only. Saved configurations remain in this browser and are not encrypted.
No saved configurations yet.
Generate a standards-based otpauth URI, scan it with Spot Auth or another authenticator, then compare the app code here.
Generate deterministic time → TOTP fixtures for unit tests and cross-language comparisons.
Confirm Secret, algorithm, digits, and period match on both sides.
Scan the generated QR and compare the current app code.
Use the drift test when failures happen near a refresh boundary.
Export fixed vectors before changing an OTP implementation.
Use one configuration to exercise the full implementation path: Base32 secret handling, HMAC algorithm, digit truncation, time step or counter, otpauth provisioning, verification windows, and repeatable fixtures. Calculations stay in this browser.
Generate SHA-1, SHA-256, or SHA-512 time-based codes with 6 or 8 digits and inspect values around refresh boundaries.
Generate counter-based OTP values from the same Base32 secret and advance the moving counter one step at a time.
Create a standards-compatible provisioning URI, scan it with an authenticator, and compare the code shown by the app.
Check an OTP within a configurable window, then export deterministic Unix-time-to-TOTP fixtures for automated tests.
Both derive short codes from a shared secret and HMAC. The moving factor is what changes: time for TOTP, an agreed counter for HOTP.
| TOTP · RFC 6238 | HOTP · RFC 4226 | |
|---|---|---|
| Moving factor | Unix time divided into fixed steps | Monotonically increasing counter |
| Common baseline | 30 seconds · 6 digits · HMAC-SHA-1 | 6 digits · HMAC-SHA-1 |
| Typical mismatch | Clock drift, period, digits, algorithm, or secret | Counter desynchronization, digits, or secret |
Yes. The secret is shared key material. TOTP derives its moving factor from time, while HOTP uses a counter; the provisioning type and verifier must agree on the mode.
Compare the decoded secret, algorithm, digit count, period, and current time first. For HOTP, also confirm the counter. Boundary-only failures usually indicate clock skew or a verification-window issue.
No. Use temporary test secrets only. Calculations are local, but saved configurations remain unencrypted in this browser and a test environment should never depend on a live credential.
No. It proves the URI can be encoded and scanned. Confirm how each client handles issuer, account label, algorithm, digits, period or counter, and test the resulting code against your server.