I lost my phone
Use a backup code or another enrolled method to sign in, then remove the old authenticator and set up 2FA again on your new device.
AltF Authenticator
AltF Authenticator generates time-based one-time passwords (TOTP, RFC 6238) from a Base32 secret, an otpauth:// link or a QR image, and the work happens in your browser. It also builds setup QR codes, verifies codes, checks your clock, decodes Google Authenticator exports and runs the official RFC test vectors. Use it to check, migrate, test and recover; keep your everyday 2FA secrets in a dedicated authenticator app or password manager.
Add a secret, an otpauth:// link or a QR screenshot. Codes are calculated on this device with the Web Crypto API and refresh every period.
No accounts yet
Try the RFC demo secret to see how it works.
Secrets stay in this tab. No request made by this page contains a secret or a code, and nothing goes to analytics. Saving is optional and encrypted on this device; set a passphrase or wipe it in the 2FA Authenticator vault tool.
Use a backup code or another enrolled method to sign in, then remove the old authenticator and set up 2FA again on your new device.
Check your device clock first. If it is right, verify the code against the secret to see whether it matches a nearby time step.
Export from the old app, import on the new one, and check every account works before you wipe the old phone.
Generate a secret, show it as an otpauth:// QR code, and test your server's verification against the RFC vectors.
Store recovery codes offline, away from the phone that holds your authenticator, and mark each one as used.
Add the same secret here and compare codes, or run the RFC self-test to confirm the maths on this device.
On the service's 2FA setup screen, choose the option to enter a key manually, or save the QR code image. The secret is a string of letters A to Z and digits 2 to 7.
Open the Live codes tab and paste the Base32 secret or the otpauth:// link, or upload or paste the QR image. The image is decoded in your browser.
Leave SHA-1, 6 digits and 30 seconds unless the service says otherwise. An otpauth:// link or QR code sets these for you.
Type or copy the current code into the service. If the ring is nearly empty, wait for the next code.
Open the Clock check tab. If your device time is off by more than a few seconds, turn on automatic time and try again.
Add the same secret to a dedicated authenticator app or password manager, and keep the service's backup codes somewhere safe and offline.
| Tool | What it does | What leaves your device | What it does not do |
|---|---|---|---|
| Live codes | Shows live TOTP codes for several accounts from a Base32 secret, otpauth:// link or QR image, with a countdown, the next code and one-click copy. | Nothing. QR images are decoded in the browser. If you choose Save on this device, accounts are encrypted and stored in this browser only. | Not a replacement for an authenticator app, and no sync between devices. |
| Set up 2FA | Generates a random 160-bit Base32 secret, builds the otpauth:// URI with issuer, account, algorithm, digits and period, and draws the QR code. | Nothing. The secret and QR code are made in your browser. | Does not enrol the secret with any service; your own app or server must store it. |
| Verify a code | Checks a code against a secret across a window of time steps and reports which step matched and the clock drift that implies. | Nothing. The check runs in your browser. | Does not track used codes, so it cannot detect replay the way a real server should. |
| HOTP counter | Generates counter-based codes per RFC 4226 for any counter value you choose. | Nothing. | Does not know the counter value your service expects; you must track it. |
| Decode export | Decodes a Google Authenticator otpauth-migration:// export QR into standard otpauth:// links and secrets. | Nothing. The QR and its payload are decoded in your browser. | Cannot open exports from apps that encrypt their backups, and does not import into other apps for you. |
| Backup codes | Generates random recovery codes, lets you download them as .txt or print them, and gives a storage checklist. | Nothing. | The codes are not registered with any service and cannot unlock your accounts. |
| Clock check | Compares your device clock with AltFTool server time and says whether the difference is large enough to break codes. | One time request to AltFTool's own server. It carries no secret, code or account name. | Cannot change your device clock; it tells you how far off it is and how to fix it. |
| Self-test | Runs the 18 RFC 6238 Appendix B test vectors through the same code as the live codes and shows pass or fail for each. | Nothing. | Proves the algorithm is correct, not that a particular service is configured correctly. |
AltFTool never receives your secrets or codes. The only network request any tab makes is the clock check, which asks AltFTool's server for the time and carries nothing else.
The most common cause is a wrong device clock. TOTP codes depend on the current time, and most services only accept codes from a small window around it, so a clock that is off by more than about 30 seconds gives codes the server rejects. Turn on automatic date and time, then try again. Other causes are a mistyped secret, the wrong account, or non-default settings such as SHA-256 or 8 digits that your app ignored. The Clock check and Verify tabs help you find which one it is.
It depends on where the secret goes. Here the code is calculated in your browser and the secret is not sent to any server, which you can confirm in your browser's network tab. Even so, a browser tab is a weaker place to keep a secret than an authenticator app, because extensions and malware on the device can read the page. Use it on a device you trust, for checking, testing, migrating or an emergency, and keep the secret in a proper app.
It is a random shared key that a service gives you when you turn on app-based 2FA. It is usually shown as Base32 text (letters A to Z and digits 2 to 7) and is also inside the setup QR code. Your app and the server both combine the secret with the current time to make the same 6-digit code. Anyone who has the secret can make your codes, so treat it like a password.
Not as your everyday authenticator. By default the accounts you add here are gone when you close the tab, and a browser is easier to attack than a phone app. It produces the same codes as Google Authenticator for the same secret, which makes it useful to check a secret, test a setup or get a code in an emergency. Keep your secrets in a dedicated authenticator app or a password manager.
On the old phone, open Google Authenticator, choose Transfer accounts, then Export accounts, and scan the QR code (or codes) with Google Authenticator on the new phone. Check that every account shows a code on the new phone before you remove anything from the old one. If you want to move the accounts to a different app, the Decode export tab can turn the export QR into standard otpauth:// links locally.
Not unless you ask it to. By default accounts live only in the page's memory. If you turn on Save on this device, they are encrypted with AES-256-GCM and stored in this browser's IndexedDB, protected by a non-extractable device key or by your passphrase. Nothing is uploaded and there is no account or sync.
Sign in on another device and use one of the backup codes the service gave you when you set up 2FA, or another method you enrolled such as a security key or a second phone. If you have none, use the service's account recovery process. Once you are in, remove the old authenticator, set up 2FA again on your new device and save new backup codes.
Some services use non-default settings: 8 digits, a 60-second period or HMAC-SHA-256 or SHA-512. These are allowed by RFC 6238 and are written into the otpauth:// link. Some versions of Google Authenticator have ignored these parameters, so if your app shows a 6-digit code that keeps failing, add the account here from the full link to see the code the service expects.
Both use the same HMAC and truncation steps. HOTP (RFC 4226) uses a counter that goes up each time you make a code, so the code stays valid until it is used. TOTP (RFC 6238) uses the current time divided into 30-second steps as the counter, so each code expires on its own. Most websites use TOTP.
No. They are random codes made in your browser for your own use, for example if you are building a 2FA system and need codes to register, or want a template. Real backup codes for Google, Microsoft or any other service must come from that service's security settings.
No. It makes one request to AltFTool's own server to read the server's time, and the request contains no secret, code or account name. Every other tab works without sending anything.