Bezpieczeństwo osobiste

Generator kodów TOTP/HOTP

Działa lokalnie

Samo narzędzie jest w języku angielskim; na tej stronie znajdziesz wyjaśnienia w Twoim języku.

Użyj Generator kodów TOTP/HOTP

Jak to działa

Generuj hasła jednorazowe oparte na czasie (TOTP) lub na liczniku (HOTP) dla klucza Base32, tak jak robią to aplikacje uwierzytelniające, i sprawdzaj, czy kod jest poprawny. Przydatne do testowania własnej konfiguracji uwierzytelniania dwuskładnikowego (2FA).

Działa całkowicie w przeglądarce: żadne wprowadzone dane nie są przesyłane.

Jak korzystać z Generator kodów TOTP/HOTP

  1. Wpisz hasło. Wklej klucz tajny w formacie Base32 swojego konta testowego w polu „Klucz tajny (Base32)” lub naciśnij przycisk „Losowy”, aby wygenerować nowy 32-znakowy klucz tajny.
  2. Dostosuj ustawienia swojej aplikacji. Wybierz typ kodu (TOTP oparty na czasie lub HOTP oparty na liczniku), algorytm oraz liczbę cyfr. Większość aplikacji uwierzytelniających korzysta z algorytmów TOTP i HMAC-SHA-1 oraz 6 cyfr.
  3. Pokaż kod. W przypadku TOTP naciśnij przycisk „Start TOTP”: kod pojawi się wraz z odliczaniem i jest przeliczany co sekundę. W przypadku HOTP ustaw licznik i naciśnij przycisk „Pokaż kod HOTP”; przycisk „Dalej” powoduje przejście do następnego licznika.
  4. Sprawdź kod. Wpisz kod z aplikacji lub serwera w polu „Sprawdź kod” i naciśnij przycisk „Sprawdź”. Wynik wskazuje, czy kod jest zgodny oraz dla którego kroku czasowego lub licznika.
  5. Zatrzymaj się i wyczyść. Po zakończeniu naciśnij przycisk „Stop”; ostatni kod pozostanie na ekranie. Samodzielnie wyczyść pole tajne.

Przykład

Sekret testowy RFC 6238

Dane wejściowe
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Wynik (zarejestrowany 2026-10-20)
412568

Oto opublikowany w RFC 6238 klucz testowy 12345678901234567890 w formacie Base32. Strona pokazuje jego aktualny sześciocyfrowy kod oraz liczbę sekund do pojawienia się następnego – ten sam kod, jaki aplikacja uwierzytelniająca wyświetla dla tego klucza; po przełączeniu na tryb HOTP z licznikiem ustawionym na 0 wyświetla 755224, czyli pierwszą wartość testową zgodną z RFC 4226.

Co jest sprawdzane

SygnałCo to oznacza
KodHMAC oparty na kroku czasowym (TOTP) lub liczniku (HOTP), skrócony do 6 lub 8 cyfr zgodnie z RFC 4226 i RFC 6238. Jest on zgodny z aplikacją tylko wtedy, gdy typ, algorytm i liczba cyfr są takie same.
Odświeżanie w nanosekundach · krok czasowy NLiczba sekund pozostałych w bieżącym 30-sekundowym przedziale oraz numer kroku, pobrany z zegara urządzenia. Jeśli zegar jest niedokładny, wyświetlany jest poprzedni lub następny kod.
Licznik N · naciśnij „Dalej”W trybie HOTP kod jest przypisany do danego licznika. Każdy kod jest używany tylko raz; serwery oczekują następnie kolejnego licznika.
Nie w formacie Base32: ...Hasło zawiera znaki spoza zakresu A–Z i 2–7, takie jak 0, 1, 8 lub 9. Spacje, łączniki i znak „=” są ignorowane, a małe litery są akceptowane.
Sekret ma tylko N bitówKlucz jest krótszy niż 128 bitów (26 znaków w formacie Base32) wymaganych przez RFC 4226. Kody są nadal wyświetlane, ale taki klucz łatwiej odgadnąć.
Prawidłowe: pasuje do ...Sprawdź, czy w polu znajduje się kod odpowiadający bieżącemu krokowi czasowemu lub licznikowi HOTP.
Dotyczy poprzedniego lub następnego krokuKod odnosi się do jednego 30-sekundowego przedziału czasowego przed lub po chwili obecnej (zaznaczonego na pomarańczowo). Zazwyczaj występuje niewielka różnica w czasie między tymi dwoma urządzeniami.
Brak wynikówAni sprawdzone kroki czasowe, ani liczniki nie pasują. Sprawdź sekret, zegar, algorytm i liczbę cyfr.

Więcej przykładów

Klucz testowy RFC 4226, HOTP

Dane wejściowe
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Wynik

W przypadku typu kodu HOTP, algorytmu HMAC-SHA-1, 6 cyfr i licznika 0 kod wynosi 755224; polecenie „Next” zwraca wartość 287082 dla licznika 1, co odpowiada opublikowanym wartościom testowym z dokumentu RFC 4226.

Sprawdź kod o jeden licznik dalej

Dane wejściowe
GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ
Wynik

W trybie HOTP przy liczniku 0 wpisanie liczby 287082 w polu „Sprawdź kod” powoduje wyświetlenie komunikatu: „Prawidłowy dla licznika 1”, czyli o 1 więcej niż wskazuje licznik.

Nie jest to klucz tajny w formacie Base32

Dane wejściowe
0189
Wynik

BŁĄD z komunikatem „Nie jest to format Base32: »0«, »1«, »8«, »9«, ponieważ w formacie Base32 używa się wyłącznie liter A–Z oraz cyfr 2–7”.

Najczęściej zadawane pytania

Co dokładnie oblicza?

Kody TOTP generowane na podstawie bieżącej godziny w odstępach co 30 sekund (RFC 6238) lub kody HOTP dla ustawionego przez użytkownika licznika (RFC 4226), z wykorzystaniem algorytmów HMAC-SHA-1, SHA-256 lub SHA-512 oraz składające się z 6 lub 8 cyfr; większość aplikacji uwierzytelniających korzysta z algorytmu SHA-1 i 6 cyfr. Aplikacja weryfikująca kod sprawdza aktualny przedział czasowy oraz po jednym przedziale w każdą stronę, albo licznik HOTP i kolejne 9 wartości; kod zawierający znaki spoza zakresu A–Z i 2–7 jest odrzucany wraz z komunikatem.

Czy kod TOTP chroni mnie przed phishingiem?

Nie do końca. Zestawy phishingowe typu „adversary-in-the-middle” przekazują kod do prawdziwej witryny w trakcie wpisywania, więc jest on przechwytywany wraz z hasłem; klucze dostępu i klucze bezpieczeństwa FIDO2 są odporne na to zagrożenie, ponieważ są powiązane z prawdziwą domeną.

Czy ten sekret jest gdzieś przesyłany lub przechowywany?

Nie. Kody są generowane w przeglądarce za pomocą interfejsu API Web Crypto, a klucz tajny nigdy nie jest przesyłany ani zapisywany. Metoda TOTP opiera się na zegarze urządzenia, więc zegar, który się nie zgadza, generuje inne kody.

Jak mogę porównać te kody z dokumentami RFC?

Użyj klucza testowego 12345678901234567890, w formacie Base32: GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. W trybie HOTP licznik 0 daje wartość 755224, a licznik 1 – 287082 (RFC 4226). Norma RFC 6238 podaje wartość 94287082 dla 8 cyfr po upływie 59 sekund od 1 stycznia 1970 r. czasu UTC; tryb TOTP zawsze wykorzystuje aktualny czas.

Jaka jest różnica między TOTP a HOTP?

HOTP (RFC 4226) zlicza użycia: każdy kod jest powiązany z licznikiem, którego wartość zwiększa się o jeden. TOTP (RFC 6238) to HOTP, w którym licznik jest ustawiony na bieżący 30-sekundowy przedział czasowy, więc kod zmienia się wraz z upływem czasu.

Dlaczego moja aplikacja wyświetla inny kod?

Najpierw sprawdź zegary, ponieważ różnica 30 sekund powoduje zmianę kodu. Następnie sprawdź, czy w sekrecie nie ma literówek oraz czy konto korzysta z algorytmów SHA-256, SHA-512, 8 cyfr lub licznika zamiast czasu, i ustaw tutaj te same opcje.

Czy powinienem wkleić tutaj prawdziwy kod do uwierzytelniania dwuskładnikowego?

Należy tego unikać. Hasło pozostaje w przeglądarce, ale każdy, kto je zobaczy lub skopiuje, będzie mógł generować kody, dopóki nie zresetujesz uwierzytelniania dwuskładnikowego na tym koncie. Aby przenieść uwierzytelnianie dwuskładnikowe na nowy telefon, skorzystaj z opcji przeniesienia lub resetowania dostępnej na samym koncie.

Objaśnienie terminów

Badania PhishDestroy