Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator NanoID

Krótkie, losowe i URL-safe identyfikatory z podaną entropią w bitach.

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";
}
Ustaw długość i kliknij „Generuj”.

Oceń to narzędzie:

Powiązane narzędzia

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

Generator NanoID — krótkie losowe identyfikatory bezpieczne w adresie URL

Generator NanoID tworzy krótkie identyfikatory losowane kryptograficznym generatorem systemu. Ustawiasz długość, liczbę sztuk i zestaw znaków, a narzędzie pokazuje gotowe identyfikatory razem z entropią w bitach. Domyślne 21 znaków z alfabetu URL-safe daje około 126 bitów losowości, czyli więcej niż UUID v4, przy zapisie krótszym o 15 znaków.

Czym jest NanoID i skąd bierze się 21 znaków

NanoID nie jest standardem opisanym w dokumencie RFC, tylko konwencją: bierzemy alfabet, losujemy z niego znaki i sklejamy ciąg o zadanej długości. Domyślne 21 znaków z 64-znakowego zestawu A-Z a-z 0-9 _ - wybrano tak, aby entropia przebiła UUID v4: 21 znaków po 6 bitów to 126 bitów, wobec 122 bitów losowych w UUID v4, gdzie sześć bitów zajmują pola wersji i wariantu.

Entropia, czyli ile bitów naprawdę dostajesz

Każdy znak wnosi tyle bitów, ile wynosi logarytm dwójkowy rozmiaru alfabetu: dla zestawu URL-safe dokładnie 6, dla alfanumerycznego około 5,95, dla małych liter z cyframi około 5,17, a dla szesnastkowego równe 4. Narzędzie liczy to za Ciebie i wypisuje wynik nad listą identyfikatorów. Praktyczny próg: identyfikator pełniący funkcję sekretu w publicznym adresie URL powinien mieć co najmniej 120 bitów, a taki, który zapewnia tylko unikalność rekordu, zmieści się w 60–80 bitach.

NanoID, UUID v4, ULID i CUID2 — czym się różnią

FormatDługość zapisuAlfabetSortowalny po czasieLosowość
NanoID (21)21 znaków64 znaki: A-Z, a-z, 0-9, _, -nie126 bitów
UUID v436 znaków z myślnikami16 znaków hex plus myślnikinie122 bity
ULID26 znaków32 znaki, Crockford base32tak, 48-bitowy znacznik czasu80 bitów
CUID2 (24)24 znakilitery i cyfrynieok. 120 bitów

Jeśli potrzebujesz identyfikatora zgodnego ze standardem, bo wymaga tego typ kolumny w bazie albo cudze API, sięgnij po generator UUID. Jeżeli identyfikatory mają dać się sortować w kolejności powstawania, właściwym wyborem jest generator ULID.

Jak wygenerować identyfikatory krok po kroku

  1. Ustaw długość od 4 do 128 znaków. Domyślne 21 odpowiada klasycznemu NanoID.
  2. Podaj, ile sztuk chcesz otrzymać — od 1 do 200. Narzędzie pilnuje, żeby na jednej liście nie powtórzył się ten sam identyfikator.
  3. Wybierz alfabet. Liczba w nawiasie to rozmiar zestawu, bo razem z długością decyduje on o entropii.
  4. Kliknij Generuj, sprawdź entropię nad listą i skopiuj wszystko jednym przyciskiem.

Który alfabet wybrać

Zestaw URL-safe zawiera tylko znaki, które nie wymagają kodowania procentowego w adresie ani w nazwie pliku. Alfanumeryczny odrzuca podkreślenie i myślnik, więc identyfikator przejdzie przez systemy traktujące myślnik jako separator. Małe litery z cyframi pasują do nazw poddomen i wszędzie tam, gdzie wielkość liter nie jest rozróżniana. Szesnastkowy przydaje się przy integracjach oczekujących wyłącznie cyfr i liter od a do f.

Zestaw bez znaków mylących pomija zero razem z literą O oraz jedynkę razem z I i L — pary, które ludzie mylą przy przepisywaniu z ekranu albo z wydruku. Zostaje 31 znaków, około 4,95 bita na znak, więc taki kod musi być trochę dłuższy, żeby dać tę samą entropię. To dobry wybór na kody odbioru i numery zgłoszeń dyktowane przez telefon.

Kiedy realnie grozi kolizja

Kolizje rządzą się paradoksem urodzin: prawdopodobieństwo trafienia dwóch identycznych wartości rośnie z kwadratem ich liczby, a nie liniowo. Przy 126 bitach entropii i miliardzie wygenerowanych identyfikatorów szansa na jakąkolwiek kolizję jest mniejsza niż jedna na 10²⁰. W drugą stronę ta sama arytmetyka bywa bezlitosna: cztery znaki szesnastkowe to zaledwie 65 536 możliwości, więc już przy dwustu sztukach kolizja jest bardziej prawdopodobna niż jej brak. Dlatego generator odrzuca powtórzenia w obrębie jednej listy, a gdy wybrana długość i alfabet nie dają tylu różnych wartości, mówi o tym wprost, zamiast po cichu skracać wynik.

Dlaczego NanoID nie sortuje się po czasie

W identyfikatorze nie ma znacznika czasu ani licznika — wszystkie znaki są losowe. Sortowanie po takim kluczu daje kolejność alfabetyczną, bez związku z kolejnością powstawania rekordów. Jeżeli klucz główny ma być zarazem naturalnym porządkiem danych, wybierz ULID albo UUID v7. NanoID świeci tam, gdzie identyfikator ma być krótki i nieodgadywalny: w publicznych linkach do udostępnianych zasobów, w kodach zaproszeń, w nazwach plików w magazynie obiektowym.

Losowy identyfikator nie jest hasłem ani uprawnieniem. Jeśli chronisz nim zasób, traktuj go jak sekret: nie zapisuj go w logach w całości, ustaw termin ważności i sprawdzaj uprawnienia po stronie serwera. Do haseł dla ludzi lepiej nadaje się generator haseł.

Najczęściej zadawane pytania

Czy 21 znaków to nie za mało?

Nie. Przy 64-znakowym alfabecie 21 znaków daje 126 bitów entropii, o cztery bity więcej niż UUID v4. Żeby ryzyko kolizji dobiło do jednego procenta, trzeba by wygenerować rzędu 10¹⁸ identyfikatorów.

Czy identyfikatory powstają w przeglądarce?

Nie. Losowanie odbywa się na serwerze, funkcją random_int() PHP, która pobiera bajty z systemowego generatora kryptograficznego. Wynik wraca do przeglądarki i nie jest nigdzie zapisywany — w historii narzędzi ląduje wyłącznie użyty alfabet i liczba sztuk, bez samych identyfikatorów.

Czy NanoID nadaje się na klucz główny w bazie danych?

Tak, przy dwóch zastrzeżeniach. Trzymaj go w kolumnie o stałej długości, na przykład CHAR(21) z porównywaniem binarnym, żeby indeks nie puchł. I pamiętaj, że losowy klucz rozprasza wstawienia po całym indeksie, co przy setkach milionów rekordów obniża wydajność zapisu. Typowe rozwiązanie to rosnący klucz techniczny plus NanoID jako publiczny identyfikator w adresach URL.

Czy mogę użyć NanoID jako hasła?

Nie polecamy. Alfabet URL-safe nie zawiera znaków specjalnych, więc identyfikator nie przejdzie części reguł złożoności. Do kont użytkowników użyj generatora haseł, który świadomie miesza wielkie i małe litery, cyfry oraz symbole.

Jak dobrać długość identyfikatora do zastosowania?

Policz, ile wartości powstanie w całym życiu systemu, i dodaj zapas na paradoks urodzin. Dla identyfikatorów wewnętrznych w skali milionów rekordów wystarcza 12 znaków URL-safe, czyli 72 bity. Dla publicznych linków zostań przy 21 znakach, a dla jednorazowych tokenów resetu hasła weź 32 znaki i krótki termin ważności.

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