Generator OTP

Generator OTP oblicza kody jednorazowe z udostępnionego sekretu Base32 — ten sam mechanizm, którego używają Google Authenticator, Authy i 1Password. TOTP odświeża się co 30 sekund; HOTP awansuje na żądanie z licznika, który ty kontrolujesz. Przydatne do testowania przepływów 2FA lub wyciągnięcia kodu zapasowego, gdy aplikacja autentykatora jest niedostępna.

Built by Bob Article by Lace QA by Ben Shipped

Jak używać

  1. 1

    Wybierz TOTP (oparty na czasie, domyślny) lub HOTP (oparty na liczniku).

  2. 2

    Wklej swój sekret Base32. Jeśli testujesz, kliknij 'Generuj losowo' aby uzyskać świeży.

  3. 3

    TOTP: kod odświeża się co 30 sekund z paskiem odliczania. HOTP: zwiększ licznik ręcznie z '+ Następny'.

  4. 4

    Kliknij Kopiuj kod, aby wziąć 6-cyfrowy OTP.

Często zadawane pytania

Ratings & Reviews

Rate this tool

Sign in to leave a written review.
Loading reviews…

Generator OTP – co to właściwie jest? To narzędzie, które z sekretu TOTP (klucza zapisanego przy włączaniu weryfikacji dwuetapowej) wylicza ten sam sześciocyfrowy kod, który pokazuje ci Google Authenticator czy Microsoft Authenticator. Przydaje się programistom testującym 2FA i każdemu, kto ma zapisany klucz konfiguracyjny. Czego nie zrobi: nie wygeneruje kodu BLIK, kodu SMS z banku ani kodu do Profilu Zaufanego – te powstają na serwerze banku czy urzędu i nie da się ich wyliczyć po twojej stronie. Wszystko liczy się w przeglądarce, sekret nigdzie nie wychodzi.

Co to jest generator OTP?

Generator OTP zamienia wspólny sekret w hasło jednorazowe: sześciocyfrowy kod, który aplikacja uwierzytelniająca pokazuje przy logowaniu z weryfikacją dwuetapową. Wklej sekret Base32 do Generatora OTP, a zobaczysz ten sam kod, który twoja aplikacja pokazałaby dla tego sekretu w tej chwili. Narzędzie działa w przeglądarce. Nic, co wkleisz, nie jest nigdzie wysyłane.

Są dwa rodzaje haseł jednorazowych, a narzędzie obsługuje oba:

  • TOTP (oparte na czasie, RFC 6238). Kod zmienia się co 30 sekund. Tego używają Google Authenticator, Microsoft Authenticator, Authy i 1Password przy niemal każdym koncie.
  • HOTP (oparte na liczniku, RFC 4226). Kod zmienia się, gdy licznik wzrośnie o jeden – zwykle po naciśnięciu przycisku na tokenie sprzętowym.

Oba liczą to samo. Różni je tylko to, co jest zmienną częścią: zegar albo licznik. Kody tutaj używają HMAC-SHA1 i 6 cyfr – ustawień, które prawie każdy serwis stosuje domyślnie.

Jak korzystać z Generatora OTP

  1. Wybierz tryb. Po otwarciu strony zaznaczony jest TOTP. Przełącz na HOTP, jeśli testujesz token oparty na liczniku.
  2. Wpisz sekret. Pole startuje z losowym sekretem, więc kod widać na ekranie, zanim cokolwiek wpiszesz. Wklej na jego miejsce własny sekret Base32 albo kliknij Generuj losowo, żeby dostać nowy. Losowe sekrety mają 32 znaki, czyli 160 bitów.
  3. Odczytaj kod. W trybie TOTP pasek odlicza czas do kolejnej pełnej 30-sekundowej granicy, a kod zmienia się sam, gdy dojdzie do zera. W trybie HOTP wpisz wartość licznika albo naciśnij + Następny, żeby zwiększyć go o jeden.
  4. Skopiuj go. Kopiuj kod wrzuca 6 cyfr do schowka. Ikona kopiowania obok sekretu kopiuje sam sekret.

Pole sekretu wybacza niedbałe wklejanie. W trakcie pisania zamienia małe litery na wielkie i usuwa spacje, więc gezd gnbv ... skopiowane z ekranu konfiguracji działa tak samo jak czysta wersja. Ikona oka ukrywa sekret, gdy ktoś zagląda ci przez ramię.

To cały proces. Bez konta, bez instalacji, bez kroku „połącz swój autentykator”. Większość narzędzi do testowania 2FA siedzi w platformach dla programistów, za które płaci się od stanowiska. To tutaj to pole tekstowe i liczba.

Jak liczone są kody TOTP i HOTP

Każdy kod powstaje w tych samych czterech krokach:

  1. Zdekoduj sekret Base32 do surowych bajtów.
  2. Policz HMAC-SHA1 z 8-bajtowego licznika, używając sekretu jako klucza. Wychodzi 20 bajtów.
  3. Ostatnie 4 bity wyniku wskazują pozycję startową; od niej odczytaj 4 bajty jako liczbę. RFC 4226 nazywa to dynamicznym obcięciem (dynamic truncation).
  4. Zostaw ostatnie 6 cyfr tej liczby. To twój kod.

W HOTP licznikiem jest dowolna liczba, którą podasz. W TOTP licznikiem jest aktualny czas uniksowy podzielony przez 30 i zaokrąglony w dół. Kod TOTP to więc po prostu kod HOTP, w którym licznik wybiera zegar. W czasie uniksowym 59 licznik TOTP wynosi 1, a kod TOTP równa się kodowi HOTP dla licznika 1.

Przykład: oficjalne wektory testowe

Oba dokumenty RFC publikują wartości testowe dla sekretu 12345678901234567890 (20 bajtów ASCII). W Base32 to GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ. Wklej go, przełącz na HOTP i zwiększaj licznik:

Licznik HOTPKod w tym narzędziuRFC 4226, dodatek D
0755224755224
1287082287082
2359152359152
3969429969429
9520489520489

Tryb TOTP zawsze używa bieżącego czasu, więc nie wpiszesz w nim przeszłego znacznika czasu. Wartości z RFC 6238 i tak sprawdzisz: podziel znacznik czasu przez 30, zaokrąglij w dół i wpisz wynik jako licznik HOTP. RFC 6238 podaje kody 8-cyfrowe. Narzędzie pokazuje 6 – to ostatnie 6 cyfr tej samej liczby.

Czas uniksowyLicznik (czas ÷ 30)RFC 6238 (8 cyfr, SHA-1)To narzędzie (6 cyfr)
59194287082287082
11111111093703703607081804081804
12345678904115226389005924005924
20000000006666666669279037279037

Jeśli u ciebie wartości się zgadzają, matematyka działa. Każda niezgodność z prawdziwym serwisem wynika z danych wejściowych: sekretu, zegara albo ustawień.

Jakie sekrety przyjmuje narzędzie i dlaczego kody się nie zgadzają

Tę sekcję przeczytaj, jeśli kod nie przechodzi weryfikacji. Oto co sprawdzić najpierw.

Sekret musi mieć co najmniej 128 bitów

Narzędzie odrzuca sekrety krótsze niż 16 bajtów, czyli 26 znaków Base32. Ta zasada pochodzi z biblioteki otplib, na której działa, a samo RFC 4226 wymaga co najmniej 128 bitów. Słynny 16-znakowy sekret demonstracyjny JBSWY3DPEHPK3PXP ma tylko 10 bajtów. Wklej go, a zamiast kodu zobaczysz komunikat „Secret must be at least 16 bytes (128 bits), got 10 bytes”. Typowe sekrety 32-znakowe działają bez problemu. Górna granica to 64 bajty, ok. 102 znaki.

Dozwolone są tylko A–Z i 2–7

Base32 (RFC 4648) używa 26 liter i cyfr od 2 do 7. Cyfry 0, 1, 8 i 9 do niego nie należą, więc sekret, w którym występują, ma literówkę albo w ogóle nie jest w Base32. Litery O, I i L są dozwolone – dlatego ludzie mylą je na ekranie. Jeśli w sekrecie widzisz 0, to prawdopodobnie jest O.

Ustawienia są stałe: SHA-1, 6 cyfr, 30 sekund

To wartości domyślne z RFC 6238 i w niemal każdej aplikacji uwierzytelniającej. Niektóre systemy używają SHA-256, SHA-512, 8 cyfr albo okresu 60 sekund. To narzędzie nie przełączy się na nie, więc jego kody nie będą pasować do takiego systemu. Sprawdź link otpauth:// serwisu: zawiera parametry algorithm=, digits= i period=, jeśli różnią się od domyślnych.

Twój zegar się spieszy albo spóźnia

TOTP wymaga, żeby obie strony zgadzały się co do godziny. Jeśli zegar komputera rozjedzie się o więcej niż kilka sekund, odliczanie i kod nie będą się zgadzać z telefonem. Włącz automatyczne ustawianie czasu w ustawieniach systemu i przeładuj stronę.

Szybki test przy niezgodności: wpisz ten sam sekret do tego narzędzia i do aplikacji uwierzytelniającej. Jeśli oba się zgadzają, a serwer odrzuca kod, serwer używa innych ustawień albo innego sekretu. Jeśli się nie zgadzają, najpierw sprawdź zegar.

Fałszywe OTP, kody SMS i tokeny sprzętowe

Ludzie szukają „generatora fałszywych OTP” albo „losowego generatora OTP”. Oto co to może, a czego nie może znaczyć.

Kliknij Generuj losowo, a dostaniesz prawdziwy kod TOTP z zupełnie nowego sekretu. Przydaje się jako dane testowe: wiarygodnie wyglądający sześciocyfrowy kod do formularza, demo albo zrzutu ekranu. Działa też od początku do końca. Dodaj ten sam sekret do aplikacji uwierzytelniającej, a obie pokażą te same kody. Jeśli potrzebujesz tylko sześciu losowych cyfr bez żadnego sekretu, prostszym narzędziem jest generator liczb losowych.

Żaden generator OTP nie zrobi kodu do cudzego konta. Kod zależy od sekretu tego konta, a mają go tylko serwis i właściciel konta. Kod z jakiegokolwiek innego sekretu to dla serwera tylko sześć cyfr.

To samo dotyczy kodów weryfikacyjnych SMS. Bank albo aplikacja losuje je na własnym serwerze i wysyła ci SMS-em. Po twojej stronie nie ma sekretu, z którego dałoby się je wyliczyć. „Generator kodów weryfikacyjnych” ich nie przewidzi.

Sprzętowe tokeny OTP to breloki z przyciskiem albo małym ekranem. Trzymają sekret zamknięty w urządzeniu. Jeśli dostawca dał ci ziarno (seed) tokena (niektórzy dają, do importu na serwer), tryb HOTP odtworzy tu jego kody. Bez ziarna nic tego nie zrobi.

Kto korzysta z generatora OTP

  • Programiści budujący 2FA. Wygeneruj sekret, zapisz go dla użytkownika testowego i porównaj kod, którego oczekuje twój serwer, z tym pokazanym tutaj.
  • Testerzy QA. Logowanie na konto testowe z włączonym 2FA bez podawania sobie telefonu po całym zespole.
  • Każdy, kto ma zapisany klucz konfiguracyjny. Jeśli przy włączaniu 2FA zapisałeś sekret, nadal generuje on twoje kody na nowym urządzeniu. Żeby działał tutaj, musi mieć 128 bitów lub więcej.
  • Ciekawscy. Przejdź przez wektory RFC powyżej i zobacz, jak algorytm robi dokładnie to, co mówi standard.

Słowo ostrzeżenia. Sekret prawdziwego konta jest tak samo wrażliwy jak hasło. Ta strona nigdzie go nie wysyła, ale nie trzymaj go w notatce, na czacie ani we współdzielonym dokumencie. Do innych sekretów i ciągów znaków generator haseł i generator tokenów działają w przeglądarce tak samo. Żeby odczytać sekret z kodu QR konfiguracji, czytnik kodów QR zamieni go na link otpauth://.

Najczęściej zadawane pytania

Dlaczego mój 16-znakowy sekret pokazuje błąd?

16-znakowy sekret Base32 ma 80 bitów, a narzędzie wymaga co najmniej 128 bitów (26 znaków). Komunikat brzmi „Secret must be at least 16 bytes (128 bits), got 10 bytes”. Większość serwisów wydaje dziś sekrety 32-znakowe, które działają. Starszy 80-bitowy sekret nadal zadziała w aplikacji uwierzytelniającej, ale to narzędzie go nie przyjmie.

Czy mogę generować kody 8-cyfrowe albo użyć SHA-256?

Nie. Narzędzie ma na stałe 6 cyfr, HMAC-SHA1 i okres 30 sekund – domyślne wartości z RFC, których używają aplikacje uwierzytelniające. System ustawiony na 8 cyfr, SHA-256 lub SHA-512 albo okres 60 sekund wygeneruje inne kody.

Jak długo ważny jest kod TOTP?

Każdy kod należy do jednego 30-sekundowego okna, które zaczyna się na pełnej wielokrotności 30 sekund czasu uniksowego. Pasek odliczania pokazuje, ile z okna zostało. Wiele serwerów akceptuje też kod z okna tuż przed albo tuż po, żeby uwzględnić wolne wpisywanie i drobne przesunięcie zegara. To ustawienie serwera, nie coś, o czym decyduje sam kod.

Jak wyciągnąć sekret z linku otpauth://?

Szukaj parametru secret=. W otpauth://totp/Example:alice?secret=GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&issuer=Example sekretem jest wszystko między secret= a kolejnym &. Wklej tę część do narzędzia. Jeśli masz tylko kod QR, najpierw zdekoduj go do linku.

Dlaczego TOTP i HOTP pokazują ten sam kod dla tego samego sekretu?

Czasem tak będzie i to jest poprawne. TOTP to HOTP z licznikiem równym czasowi uniksowemu podzielonemu przez 30. Gdy twój licznik HOTP równa się bieżącemu krokowi czasu, oba tryby liczą tę samą liczbę.

Czy narzędzie działa dalej po zamknięciu?

Nie. Nic nie jest zapisywane. Zamkniesz kartę – sekret i kod znikają, więc zachowaj własną kopię każdego sekretu, którego będziesz potrzebować później.