Generator kodów TOTP / 2FA
Wygeneruj kod TOTP/2FA z sekretu Base32 — w 100% w przeglądarce, Twój sekret nigdy nie opuszcza urządzenia. Konfiguracja QR + weryfikacja kodu.
Opcje zaawansowane
Czym jest generator kodów TOTP / 2FA?
Generator TOTP zamienia współdzielony sekret w rotujący kod jednorazowy, który napędza uwierzytelnianie dwuskładnikowe. TOTP — Time-based One-Time Password, zdefiniowany w RFC 6238 — bierze sekret Base32 i bieżący czas, dzieli czas na stałe kroki (domyślnie 30 sekund) i wykonuje HMAC na liczniku kroków, aby wyprowadzić krótki kod numeryczny. Ponieważ zarówno Twoja aplikacja authenticator, jak i serwer przechowują ten sam sekret i odczytują ten sam zegar, obliczają identyczny kod, nigdy nie wymieniając go przez sieć. Na tym właśnie polega istota 2FA: nawet jeśli Twoje hasło wycieknie, atakujący nadal potrzebuje kodu, który w tej chwili może wytworzyć wyłącznie Twój sekret.
"The TOTP algorithm is a time-based variant of the HOTP algorithm... TOTP = HOTP(K, T), where T is an integer representing the number of time steps between the initial counter time T0 and the current Unix time." — RFC 6238, Section 4
To narzędzie wykonuje trzy zadania na jednej stronie. Generuje kod na żywo z dowolnego sekretu Base32 wraz z odliczaniem i podglądem następnego kodu; konfiguruje zupełnie nowy sekret, budując URI otpauth:// i kod QR, który skanujesz do aplikacji authenticator; oraz weryfikuje kod względem sekretu z tolerancją ±1 kroku czasowego, tak jak prawdziwe serwery akceptują kod, który właśnie się obrócił. Wszystko działa przez natywne Web Crypto API przeglądarki, bez żadnych zależności i bez żądań sieciowych.
Programiści nieustannie sięgają po generator TOTP: aby odtworzyć dokładny kod, który pokazuje aplikacja użytkownika podczas debugowania logowania 2FA, aby utworzyć sekret i kod QR dla nowego konta, aby potwierdzić, że okno weryfikacji na serwerze odpowiada temu, czego doświadczają użytkownicy, albo aby zbudować deterministyczne dane testowe do testów end-to-end procesu dwuskładnikowego. Ponieważ sekret jest długowiecznym kluczem — każdy, kto go ma, może wygenerować każdy przyszły kod — należy go chronić jak hasło. Połącz to narzędzie z naszym generatorem losowych haseł, aby uzyskać silne hasła i kody odzyskiwania towarzyszące 2FA, oraz z generatorem kodów QR, gdy potrzebujesz samodzielnego obrazu rejestracyjnego. Aby podpisywać tokeny JSON Web Token, które często towarzyszą uwierzytelnionej sesji, zobacz enkoder JWT.
// Generate a TOTP code in the browser with the Web Crypto API
// (SHA-1, 6 digits, 30s period — RFC 6238 defaults)
async function generateTotp(base32Secret, time = Date.now()) {
// Decode the Base32 secret to raw bytes (A-Z, 2-7)
const alpha = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';
let bits = '';
for (const c of base32Secret.replace(/=+$/, '').toUpperCase())
bits += alpha.indexOf(c).toString(2).padStart(5, '0');
const bytes = new Uint8Array(
bits.match(/.{8}/g).map((b) => parseInt(b, 2)));
// Counter = number of 30s steps since the Unix epoch (8-byte big-endian)
const counter = Math.floor(time / 1000 / 30);
const msg = new Uint8Array(8);
let c = counter;
for (let i = 7; i >= 0; i--) { msg[i] = c & 0xff; c = Math.floor(c / 256); }
const key = await crypto.subtle.importKey(
'raw', bytes, { name: 'HMAC', hash: 'SHA-1' }, false, ['sign']);
const hmac = new Uint8Array(await crypto.subtle.sign('HMAC', key, msg));
// Dynamic truncation (RFC 4226) -> 6-digit code
const off = hmac[hmac.length - 1] & 0x0f;
const bin = ((hmac[off] & 0x7f) << 24) | (hmac[off + 1] << 16) |
(hmac[off + 2] << 8) | hmac[off + 3];
return (bin % 1_000_000).toString().padStart(6, '0');
}
const code = await generateTotp('JBSWY3DPEHPK3PXP');
// -> a 6-digit code that rotates every 30 seconds Najważniejsze funkcje
Kod na żywo z odliczaniem
Wklej sekret Base32, a bieżący kod TOTP pojawi się natychmiast z pierścieniem odliczania 30 sekund i podglądem następnego kodu — bez przycisku Generuj, bez czekania.
Konfiguracja sekretu i kodu QR
Wygeneruj losowy sekret Base32, a następnie uzyskaj URI otpauth:// i kod QR do zeskanowania prosto do Google Authenticator, Authy lub 1Password.
Wbudowana weryfikacja kodu
Sprawdź kod względem sekretu z taką samą tolerancją ±1 kroku czasowego, jakiej używają prawdziwe serwery, dzięki czemu kod, który właśnie się obrócił, nadal się waliduje.
Konfigurowalny algorytm i cyfry
Przełączaj między SHA-1, SHA-256 i SHA-512, wybieraj 6 lub 8 cyfr i ustawiaj okres 30s lub 60s, aby spełnić wymagania dowolnego dostawcy.
Sekret nigdy nie opuszcza przeglądarki
Każdy kod jest obliczany lokalnie za pomocą natywnego Web Crypto API. Nic nie jest przesyłane, logowane ani przechowywane — w sposób weryfikowalny, nawet offline.
Zero zależności
Zbudowane wyłącznie na Web Crypto API przeglądarki — bez bibliotek zewnętrznych, bez telemetrii i bez jakichkolwiek żądań sieciowych.
Przykłady generatora TOTP
Standardowy 6-cyfrowy TOTP (SHA-1, 30s)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-1 digits: 6 period: 30s
Code: 282760 · expires in 30s
Kanoniczny sekret testowy z RFC 6238 z domyślnymi ustawieniami, których używa każda popularna aplikacja — SHA-1, 6 cyfr, okres 30 sekund. Kod jest oparty na czasie, więc dokładna wartość zależy od bieżącego czasu; narzędzie pokazuje odliczanie na żywo oraz następny kod.
8-cyfrowy TOTP dla firm (SHA-256)
secret: JBSWY3DPEHPK3PXP algorithm: SHA-256 digits: 8 period: 30s
Code: 31094217 · expires in 30s
Niektóre systemy korporacyjne i o wysokim poziomie zabezpieczeń wydają 8-cyfrowe kody podpisane SHA-256 zamiast domyślnego SHA-1. Dopasuj algorytm, liczbę cyfr i okres dokładnie do tego, czego oczekuje Twój serwer, w przeciwnym razie wygenerowany kod nie przejdzie weryfikacji.
URI konfiguracyjny otpauth:// dla aplikacji authenticator
issuer: Acme account: alice@example.com secret: JBSWY3DPEHPK3PXP
otpauth://totp/Acme:alice@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Acme&algorithm=SHA1&digits=6&period=30
Narzędzie buduje standardowy URI otpauth:// i renderuje go jako kod QR. Zeskanuj go aplikacją Google Authenticator, Authy lub 1Password — albo wklej URI bezpośrednio — aby zarejestrować sekret na swoim urządzeniu.
Jak używać generatora TOTP
- 1
Wklej sekret Base32
Na karcie Generuj wklej swój sekret Base32 (na przykład JBSWY3DPEHPK3PXP). Bieżący kod TOTP pojawi się natychmiast z odliczaniem 30 sekund — bez przycisku Generuj.
- 2
Dostosuj opcje zaawansowane (opcjonalnie)
Otwórz opcje zaawansowane, aby zmienić algorytm (SHA-1/256/512), liczbę cyfr (6 lub 8) albo okres (30 lub 60s) tak, by pasowały do tego, co wydał Twój dostawca.
- 3
Skonfiguruj lub zweryfikuj
Użyj karty Konfiguracja, aby wygenerować sekret i kod QR dla aplikacji authenticator, albo karty Weryfikuj, aby sprawdzić kod względem sekretu z tolerancją ±1 kroku czasowego.
Częste błędy
Niezgodny algorytm lub liczba cyfr
Sekret wydany dla SHA-256 lub 8 cyfr daje zupełnie inny kod przy domyślnych SHA-1 / 6 cyfr. Dopasuj parametry dostawcy dokładnie.
secret + SHA-1/6 digits // but server expects SHA-256/8
algorithm: SHA-256, digits: 8 // match the otpauth:// URI
Dryf zegara
Jeśli zegar urządzenia odbiega o więcej niż jeden krok czasowy, kod nie przejdzie weryfikacji. Zsynchronizuj zegar systemowy przed porównaniem kodów.
system clock 90s fast // code is two steps ahead
enable NTP / automatic time // code aligns with server
Nieprawidłowy sekret Base32
Base32 używa wyłącznie A–Z i 2–7. Spacje z wydrukowanego klucza są w porządku, ale 0, 1 lub 8 nie jest prawidłowym Base32 i nie da się go zdekodować.
secret: "JBSW 0NE8" // contains 0 and 8
secret: "JBSWY3DPEHPK3PXP" // valid Base32
Typowe zastosowania
- Debugowanie procesu logowania 2FA
- Odtwórz dokładny kod, który pokazuje aplikacja authenticator użytkownika, aby prześledzić, dlaczego logowanie dwuskładnikowe jest odrzucane.
- Rejestracja nowego konta
- Wygeneruj świeży sekret Base32 i kod QR, a następnie zeskanuj go do Google Authenticator, Authy lub 1Password, aby skonfigurować 2FA.
- Walidacja okna Twojego serwera
- Weryfikuj kody względem sekretu, aby potwierdzić, że Twój backend akceptuje kod, który właśnie się obrócił, a odrzuca wygasły.
- Budowanie danych testowych end-to-end
- Oblicz deterministyczne kody TOTP ze znanego sekretu, aby napędzać zautomatyzowane testy procesu uwierzytelniania dwuskładnikowego.
- Dopasowanie ustawień korporacyjnych
- Odtwórz kody 8-cyfrowe lub SHA-256, gdy dostawca odbiega od domyślnych SHA-1 / 6 cyfr, aby zdebugować niezgodność.
- Szybkie odzyskanie dostępu
- Wygeneruj bieżący kod z zapasowego sekretu, gdy telefon jest niedostępny — używając jednorazowej kopii sekretu.
Szczegóły techniczne
- Zgodność z RFC 6238 / RFC 4226
- Implementuje TOTP zgodnie z RFC 6238 na bazie algorytmu dynamicznego skracania HOTP z RFC 4226, z wybieralnym SHA-1, SHA-256 i SHA-512.
- Natywne HMAC Web Crypto
- Kody są wyprowadzane przez crypto.subtle HMAC na liczniku kroków czasowych w formacie big-endian. Dekodowanie Base32 i skracanie odbywają się w całości w przeglądarce.
- Standardowe URI otpauth://, zero zależności
- URI konfiguracyjne są zgodne z Key Uri Format (otpauth://totp) z parametrami issuer, algorytm, cyfry i okres. Bez bibliotek zewnętrznych, bez żądań sieciowych.
Dobre praktyki
- Traktuj sekret jak hasło
- Każdy, kto ma sekret Base32, może wygenerować każdy przyszły kod. Przechowuj go w menedżerze sekretów, nigdy w systemie kontroli wersji, i preferuj tutaj sekrety testowe.
- Synchronizuj zegary
- TOTP zależy od dokładnego czasu. Włącz synchronizację czasu sieciowego na serwerach i urządzeniach, aby kody pokrywały się w oknie weryfikacji.
- Trzymaj się domyślnych ustawień, chyba że jest wymagane inaczej
- SHA-1, 6 cyfr i okres 30 sekund maksymalizują zgodność z aplikacjami. Przełączaj na 8 cyfr lub SHA-256/512 tylko wtedy, gdy wymaga tego Twój dostawca.
FAQ generatora TOTP / 2FA
Czy generator TOTP / 2FA online jest bezpieczny w użyciu?
otpauth:// oraz wygenerowany kod są w całości obliczane lokalnie za pomocą natywnego Web Crypto API. Nie ma żadnych żądań sieciowych, żadnego logowania, żadnego przechowywania ani analityki powiązanej z Twoimi danymi — możesz to sprawdzić, odłączając się od internetu i obserwując, że narzędzie nadal działa. To przeciwieństwo podejrzanego generatora, który wysyła Twój sekret metodą POST na serwer, gdzie operator mógłby w nieskończoność generować Twoje kody. Sekret TOTP to długowieczny współdzielony klucz, więc najbezpieczniejszym nawykiem pozostaje używanie jednorazowych lub testowych sekretów, gdy chcesz jedynie poeksperymentować. Czym jest TOTP i czym jest sekret Base32?
JBSWY3DPEHPK3PXP to dobrze znany testowy sekret z RFC. Dlaczego wygenerowany kod różni się od kodu w aplikacji authenticator na moim telefonie?
Jaka jest różnica między TOTP a HOTP?
Czy mogę używać kodów 8-cyfrowych albo SHA-256 / SHA-512?
otpauth:// generowany przez narzędzie zapisuje te parametry, dzięki czemu Twoja aplikacja poprawnie zarejestruje sekret. Jak dodać ten sekret do Google Authenticator, Authy lub 1Password?
otpauth://. W Google Authenticator lub Authy dotknij przycisku dodawania i wybierz Zeskanuj kod QR, aby skierować aparat na kod QR na ekranie, albo wybierz Wprowadź klucz konfiguracyjny i wklej sekret Base32 wraz z pasującą nazwą konta i algorytmem. W 1Password edytuj element logowania, dodaj pole One-Time Password i wklej URI otpauth:// bezpośrednio. Potrzebujesz samodzielnego obrazu QR do dokumentacji? Skorzystaj z naszego generatora kodów QR, a dla losowych sekretów i kodów odzyskiwania wokół niego — z generatora losowych haseł. Powiązane narzędzia
Zobacz wszystkie narzędzia →Generator i weryfikator skrótów bcrypt
Narzędzia bezpieczeństwa
Generuj i weryfikuj skróty bcrypt haseł online — regulowany koszt, prefiksy $2b$/$2a$/$2y$. W 100% w przeglądarce; Twoje hasło nigdy nie jest wysyłane.
Dekoder JWT
Narzędzia bezpieczeństwa
Dekoduj JWT online darmowym dekoderem JWT. Sprawdź header, payload, signature, claims i wygaśnięcie. W 100% w przeglądarce — token nie opuszcza urządzenia.
Koder i generator JWT
Narzędzia bezpieczeństwa
Darmowy generator i koder JWT online. Zbuduj header i payload, podpisz HS256, RS256 lub ES256 natychmiast. W 100% w przeglądarce — sekret i klucz nie opuszczają urządzenia.
Darmowy generator sekretu JWT — HS256/384/512
Narzędzia bezpieczeństwa
Wygeneruj mocny, zgodny z RFC sekret JWT dla HS256/384/512 — w 100% w przeglądarce, nigdy nie wysyłany na serwer. base64url, base64 lub hex; kopiuj do .env.
Generator MD5 hash i sum kontrolnych plików
Narzędzia bezpieczeństwa
Generuj hashe MD5, SHA-256, SHA-1 oraz SHA-512 online za darmo. Hashuj tekst lub pliki w przeglądarce, weryfikuj sumy kontrolne i kopiuj wyniki. Bez rejestracji.
Generator haseł — konfigurowalny, silny i bezpieczny
Narzędzia bezpieczeństwa
Wygeneruj silne losowe hasła natychmiast — za darmo, w 100% w przeglądarce. Dostosuj długość i znaki, partia do 50 z analizą entropii.