Co to jest NanoID?

NanoID to mały, bezpieczny dla URL generator unikalnych identyfikatorów dla JavaScript. Generuje zwarte losowe ciągi, które są statystycznie unikalne — podobne do UUID v4, ale domyślnie krótsze (21 znaków vs 36) i zaprojektowane tak, aby były przyjazne dla URL bez żadnego kodowania. Każdy znak jest wybierany z starannie wyważonego alfabetu, dzięki czemu każdy możliwy identyfikator jest równie prawdopodobny, eliminując odchylenia w rozkładzie.

NanoID wykorzystuje kryptograficznie silny generator liczb losowych (crypto.getRandomValues w przeglądarkach, crypto.randomFill w Node.js), co czyni generowane identyfikatory odpowiednimi dla kontekstów wrażliwych na bezpieczeństwo, takich jak tokeny sesji i linki jednorazowe. Domyślna długość 21 znaków daje około 2,1 × 10³⁰ możliwych kombinacji — porównywalne z UUID v4 — podczas gdy kompaktowy format oszczędza przepustowość i miejsce do przechowywania.

Opis narzędzia

Ten internetowy generator NanoID pozwala na natychmiastowe tworzenie jednego lub więcej identyfikatorów NanoID w przeglądarce bez konieczności instalacji. Możesz kontrolować długość identyfikatora, liczbę identyfikatorów do wygenerowania oraz używany alfabet — od bezpiecznego domyślnego po heksadecymalny, alfanumeryczny, tylko liczby lub w pełni niestandardowy zestaw znaków.

Przykłady

Domyślny alfabet, rozmiar 21:

V1StGXR8_Z5jdHi6B-myT
useandom-26T198340PX7
bfghjklqvwyzrictV1StG

Alfabet heksadecymalny, rozmiar 16:

3f9a1c2b4e7d0f85
a0c4e8f23b6d917c

Tylko liczby, rozmiar 8:

04817263
93571048

Alfabet niestandardowy (abc123), rozmiar 12:

b2ca31b1ca2b
3a1c2b3c1ab2

Funkcje

  • Regulowana długość: Ustaw rozmiar identyfikatora od 1 do 64 znaków (domyślnie 21)
  • Generowanie zbiorcze: Generuj do 1000 identyfikatorów jednocześnie
  • Predefiniowane alfabety: Wybieraj spośród Domyślny, Liczby, Małe litery, Wielkie litery, Alfanumeryczny, Heksadecymalny, Heksadecymalny wielkie litery, Bez podobnych znaków lub w pełni niestandardowy zestaw znaków
  • Preset Bez podobnych znaków: Usuwa znaki, które są wizualnie niejednoznaczne (np. 0, O, I, l) dla czytelnych dla człowieka identyfikatorów
  • Pobierz jako plik: Zapisz wszystkie wygenerowane identyfikatory do nanoids.txt jednym klikiem

Przypadki użycia

  • Tworzenie aplikacji: Używaj NanoID jako kluczy głównych w bazach danych lub jako identyfikatorów rekordów w API, gdzie preferowany jest krótki, bezpieczny dla URL ciąg zamiast pełnego UUID.
  • Generowanie tokenów: Generuj krótkie losowe tokeny dla linków resetowania hasła, kodów zaproszenia lub slugów referralnych, gdzie czytelność i bezpieczeństwo dla URL mają znaczenie.
  • Testowanie i dane testowe: Szybko twórz partie realistycznie wyglądających unikalnych identyfikatorów do wypełniania fixture'ów testowych lub danych prototypowych.

Wyjaśnienie opcji

Opcja Opis
Rozmiar Liczba znaków w każdym wygenerowanym identyfikatorze (1–64). Domyślnie 21 daje ~126 bitów entropii, równoważnie UUID v4.
Ilość Ile identyfikatorów wygenerować w jednej partii (1–1000).
Alfabet Pula znaków do wyboru. Większe, bardziej zróżnicowane alfabety zwiększają entropię na znak.
Alfabet niestandardowy Widoczny, gdy wybrano Niestandardowy. Wpisz dowolne znaki; duplikaty są automatycznie usuwane, aby zapobiec zniekształconemu rozkładowi.

Jak to działa

NanoID wybiera każdy znak poprzez wygenerowanie losowego bajtu, zamaskowanie go, aby pasował do rozmiaru alfabetu, i ponowną próbę, jeśli wynik wykracza poza prawidłowy zakres — technika zwana próbkowaniem odrzucającym. Zapewnia to doskonale płaski rozkład na wszystkich znakach alfabetu, niezależnie od tego, czy rozmiar alfabetu jest potęgą dwójki. Domyślny alfabet (useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict) jest bezpieczny dla URL (bez +, / lub =) i ma 64 znaki, dzięki czemu każdy znak niesie dokładnie 6 bitów entropii.