Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator kodów jednorazowych

OTP, PIN, kody zapasowe, rabatowe i tokeny HEX – do 500 kodów naraz z oceną odporności na zgadywanie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}

0 = bez grupowania

Ile błędnych prób dopuszczasz, zanim kod zostanie zablokowany. Służy do oceny ryzyka odgadnięcia.

Dotyczy tylko liter: same cyfry i HEX zostają bez zmian.

Zaawansowane: prefiks, ważność, seed

0 = bez limitu

Ten sam seed = te same kody (tylko do testów).

Kliknij „Generuj kody”, aby wylosować kody z tymi ustawieniami.

Kombinacje

1 000 000

różnych kodów przy tych ustawieniach

Entropia

19,93 bit

na kod; prefiks i myślniki się nie liczą

Szansa odgadnięcia

1 na 200 000
OK

0,0005 % przy 5 próbach. Niskie ryzyko (poniżej 1 na 100 000).

Ważność

300 s

5 min

Ile kombinacji daje kod: ściąga

Typowe kody jednorazowe i ich odporność na zgadywanie
ZastosowanieLiczba znaków (alfabet)DługośćKombinacjeEntropia [bit]Szansa przy 5 próbach
PIN 10 (cyfry) 4 10 000 13,29 1 na 2 000
Kod SMS / OTP 10 (cyfry) 6 1 000 000 19,93 1 na 200 000
OTP 8 cyfr 10 (cyfry) 8 100 000 000 26,58 1 na 20 000 000
Kod rabatowy (bez mylących znaków) 24 (wielkie litery) 8 110 075 314 176 36,68 1 na 22 015 062 835
Kody zapasowe 2FA 62 (litery i cyfry) 16 4,77 × 10^28 95,27 1 na 9,53 × 10^27
Token HEX 16 (HEX) 32 3,40 × 10^38 128 1 na 6,81 × 10^37

Jak liczymy odporność kodu

Liczba kombinacji to A^L, gdzie A to liczba dostępnych znaków, a L długość kodu. Entropia w bitach to L × log₂(A). Kod z 6 cyfr ma 10^6 = 1 000 000 kombinacji i 6 × log₂(10) ≈ 19,93 bitu. Szansa odgadnięcia przy k próbach to k / A^L, więc przy 5 próbach wynosi 1 na 200 000. Stały prefiks i myślniki nie zwiększają odporności.

Krótki kod wymaga limitu prób

Sześć cyfr wystarcza w kodach SMS i logowania, bo system blokuje kolejne próby i unieważnia kod po kilku minutach. Bez limitu prób i terminu ważności krótki kod da się odgadnąć automatem. Tokeny, których nikt nie limituje, rób dużo dłuższe: 32 znaki HEX to 128 bitów. Próg „OK” w kafelku (poniżej 1 na 100 000) jest orientacyjny.

Seed tylko do testów

Ten sam seed zawsze daje te same kody, co przydaje się w testach i danych przykładowych. Kody z seedem powstają z generatora mt_rand, który da się odtworzyć, więc nie nadają się do zabezpieczeń. Bez seeda używamy kryptograficznego generatora random_int(). Wygenerowanych kodów nie zapisujemy w historii ani w bazie.

Kody rabatowe i zapasowe w praktyce

Do kodów przepisywanych ręcznie włącz „Bez mylących znaków” i myślnik co 4 znaki. Excel po otwarciu pliku CSV potrafi usunąć zera z początku kodu, więc importuj kolumnę jako tekst. Kody zapasowe przechowuj w bazie jako skrót (hash), jak hasła. To losowe kody, nie TOTP liczone z czasu i klucza, więc nie zadziałają w aplikacjach uwierzytelniających.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator kodów jednorazowych

Kody jednorazowe służą do uwierzytelniania dwuskładnikowego (2FA), potwierdzania operacji i odzyskiwania dostępu. Powinny być losowe i krótkotrwałe. Ten generator kodów jednorazowych tworzy od 1 do 500 kodów naraz, o długości od 3 do 64 znaków, z cyfr, liter, liter i cyfr albo znaków HEX. Od razu pokazuje liczbę kombinacji, entropię i szansę odgadnięcia przy limicie prób, który podasz. Gotową listę skopiujesz albo pobierzesz jako plik CSV.

Zastosowania i gotowe ustawienia

Każdy typ kodu ma w narzędziu przycisk z gotowymi ustawieniami. Po kliknięciu możesz dalej zmieniać długość, znaki i grupowanie.

TypZastosowanieGotowe ustawienie
OTPkody 2FA, potwierdzenie SMS/e-mail6 cyfr, myślnik co 3 znaki, ważność 300 s
PINkrótkie kody do kart i aplikacji4 cyfry, bez grupowania
Tokenklucze API i linki jednorazowe32 znaki HEX (128 bitów)
Kody zapasoweawaryjny dostęp do konta16 liter i cyfr, myślnik co 4 znaki
Kody rabatowekupony w sklepie, akcje promocyjne8 wielkich liter bez O i I, myślnik co 4 znaki

Entropia

Entropia mierzy nieprzewidywalność kodu i jest wyrażana w bitach. Kod 6-cyfrowy ma około 20 bitów entropii, a 16-znakowy alfanumeryczny – ponad 90 bitów. Do 2FA wystarczy 20–30 bitów, pod warunkiem że kod szybko wygasa, a system blokuje go po kilku błędnych próbach.

Dlatego narzędzie pyta o limit prób w Twoim systemie. Szansa odgadnięcia to k / N^L, gdzie k to liczba dozwolonych prób. Przy 6 cyfrach i 5 próbach wynosi 1 na 200 000, przy 4-cyfrowym PIN-ie i tych samych 5 próbach już 1 na 2000.

Zasady bezpieczeństwa

  • Kodu jednorazowego używaj tylko raz i krótko.
  • Kody zapasowe przechowuj offline, a w bazie danych zapisuj je jako skrót (hash), tak jak hasła.
  • Nie wysyłaj kodów tym samym kanałem co logowanie.
  • Do długotrwałych haseł użyj generatora haseł z wysoką entropią.

Jak działa generator kodów jednorazowych

Generator losuje kod znak po znaku. Dla każdej pozycji wybierany jest niezależnie indeks z zakresu od 0 do N-1, gdzie N to liczba znaków w wybranym zestawie, a następnie znak stojący pod tym indeksem trafia do wyniku. Zestawy wbudowane w narzędzie mają dokładnie: 10 znaków dla cyfr (0123456789), 26 dla wielkich liter, 26 dla małych liter, 16 dla zapisu HEX (0123456789ABCDEF) i 62 dla liter i cyfr. Opcja „Bez mylących znaków” usuwa 0, 1, O, o, I oraz l, ale tylko z zestawów z literami: wielkie i małe litery mają wtedy po 24 znaki, a litery z cyframi 56. Cyfr i HEX ta opcja nie zmienia.

Gdy pole seed jest puste, każdy znak losuje kryptograficzny generator random_int() z PHP. Po wpisaniu seeda narzędzie używa mt_rand: ten sam seed zawsze daje te same kody, co przydaje się w testach, ale takie kody da się odtworzyć, więc nie nadają się do zabezpieczeń.

Kolejne losowania są niezależne i odbywają się ze zwracaniem, dlatego ten sam znak może wystąpić w kodzie wielokrotnie, a kolejność znaków ma znaczenie. Entropię takiego kodu liczymy ze wzoru H = L × log2(N), gdzie L to długość kodu, a N to liczba znaków w zestawie. Stały prefiks (np. LATO-) i myślniki z grupowania nie zwiększają entropii.

Drugi sposób patrzenia na to samo to liczba możliwych kombinacji równa N^L. Każde dodatkowe miejsce w kodzie mnoży liczbę kombinacji przez N: przy literach i cyfrach 62-krotnie, przy cyfrach dziesięciokrotnie. Opcja „Bez powtórzeń w partii” (domyślnie włączona) odrzuca kody, które już wypadły w tej samej partii. Jeśli zażądasz więcej kodów, niż istnieje kombinacji, narzędzie zgłosi błąd zamiast generować duplikaty.

Przykład krok po kroku: kod 6-cyfrowy i 8 liter i cyfr

  1. Ustawiamy długość 6 i znaki „Cyfry (0–9)”, czyli 10 znaków o indeksach od 0 do 9.
  2. Losowanie pierwszej pozycji daje indeks 4, któremu odpowiada znak 4.
  3. Kolejne niezależne losowania dają indeksy 0, 7, 9, 2 i 5, czyli znaki 0, 7, 9, 2 oraz 5.
  4. Sklejamy znaki w kolejności losowania i otrzymujemy kod 407925. Przy myślniku co 3 znaki narzędzie wyświetli go jako 407-925.
  5. Liczymy entropię: 6 × log2(10) ≈ 6 × 3,3219 ≈ 19,9 bita, a liczba możliwych kodów to 10^6 = 1 000 000. Przy limicie 5 prób szansa odgadnięcia wynosi 5 / 1 000 000, czyli 1 na 200 000.
  6. Dla porównania 8 pozycji z liter i cyfr (62 znaki) daje 8 × log2(62) ≈ 8 × 5,9542 ≈ 47,6 bita – ponad dwa razy więcej przy zaledwie dwóch dodatkowych znakach.

Entropia i liczba kombinacji według zestawu i długości

Znaki (liczba znaków)Długość koduEntropia (bity)Liczba kombinacji
cyfry (10)413,310 000
cyfry (10)619,91 000 000
cyfry (10)826,6100 000 000
HEX (16)624,016 777 216
HEX (16)832,04 294 967 296
wielkie litery (26)628,2308 915 776
wielkie litery bez O i I (24)836,7110 075 314 176
litery i cyfry (62)847,6218 340 105 584 896
litery i cyfry (62)1695,3≈ 4,77 × 10^28
HEX (16)32128,0≈ 3,40 × 10^38

Praktyczne wskazówki użycia

  • Dobierz długość do kanału przekazu. Kod wpisywany ręcznie z SMS-a nie powinien być długi – 6 cyfr to około 19,9 bita i przy krótkim czasie ważności wystarcza. Kod wklejany z linku może być dłuższy.
  • Kody zapasowe generuj partią. Przycisk „Kody zapasowe” ustawia 16 liter i cyfr z myślnikiem co 4 znaki; wygeneruj od razu 8–10 sztuk i zapisz je, zanim zapomnisz o procedurze odzyskiwania dostępu.
  • Przy kodach przepisywanych z kartki lub ekranu włącz „Bez mylących znaków” i myślnik co 4 znaki. Klient nie pomyli wtedy O z 0 ani l z 1, a krótkie grupy łatwiej przepisać bez błędu.
  • Plik CSV otwarty w Excelu może stracić zera z początku kodu (007123 zmieni się w 7123). Importuj kolumnę „kod” jako tekst.
  • Sprawdź, jak Twój system reaguje na błędne próby, i wpisz ten limit w polu „Limit prób”.

Ograniczenia narzędzia

  • Brak zgodności z TOTP. Narzędzie nie wyprowadza kodu z sekretu i znacznika czasu, więc nie zsynchronizuje się z aplikacjami uwierzytelniającymi ani nie odtworzy kodu po upływie okna czasowego.
  • Seed oznacza przewidywalność. Kody z wpisanym seedem są powtarzalne i służą do testów oraz danych przykładowych. Do prawdziwych zabezpieczeń zostaw to pole puste.
  • Ważność i limit prób to tylko parametry oceny. Generator nie unieważnia kodów po czasie ani nie blokuje prób – to zadanie Twojego systemu. Podana entropia opisuje pojedynczy kod; jeśli system pozwala na wiele prób pod rząd, realna ochrona jest niższa, niż wynikałoby to z liczby kombinacji.
  • Unikalność obowiązuje w jednej partii. Dwie osobno wygenerowane listy mogą zawierać ten sam kod, więc przy kodach rabatowych porównaj nową partię z wydanymi wcześniej.
  • Przechowywanie wyniku zależy od Ciebie. Narzędzie nie zapisuje wygenerowanych kodów w historii ani w bazie. Najczęściej wyciekają one ze schowka, notatnika albo wiadomości wysłanej do siebie.

Najczęstsze pytania

Czy wygenerowane kody są kryptograficznie bezpieczne?

Tak, jeśli pole seed zostanie puste: wtedy znaki losuje kryptograficzny generator random_int(). Kody z seedem powstają z mt_rand, da się je odtworzyć i nadają się tylko do testów.

Czym różni się ten generator od aplikacji TOTP?

TOTP to kod liczony ze wspólnego sekretu i bieżącego czasu, zwykle w oknach 30-sekundowych. To narzędzie losuje kody bez sekretu i czasu, więc nadaje się do PIN-ów, kodów zapasowych, rabatowych i testów.

Jak długi kod dla 2FA?

Standardowo 6 cyfr, przy ważności kilku minut i blokadzie po 3–5 błędnych próbach. Dłuższy kod i większy alfabet zwiększają entropię, ale utrudniają przepisywanie.

Czy kod jednorazowy może się powtórzyć?

W jednej partii nie, dopóki opcja „Bez powtórzeń w partii” jest włączona. Po jej wyłączeniu narzędzie pokazuje ryzyko duplikatu: dla 500 kodów 6-cyfrowych to około 12 %. Między osobnymi partiami powtórzenie jest zawsze możliwe.

Jaki zestaw znaków wybrać do kodów zapasowych?

Najlepiej litery i cyfry o długości 10–16 znaków, bo łączą duży alfabet z czytelną długością. Same cyfry przy tej samej długości dają znacznie mniej bitów entropii: 16 cyfr to około 53 bity, a 16 liter i cyfr około 95 bitów.

Jak przenieść kody do Excela lub sklepu internetowego?

Kliknij „Pobierz CSV”: plik kody-jednorazowe.csv ma jedną kolumnę „kod” w kodowaniu UTF-8. Przy imporcie ustaw tę kolumnę jako tekst, żeby zachować zera na początku.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!