Generator NanoID
Generuj bezpieczne, przyjazne dla URL-i unikalne identyfikatory za pomocą NanoID. Dostosuj rozmiar, alfabet i ilość dla tokenów, kluczy bazy danych i krótkich identyfikatorów.
Wejście
Wyjście
Instrukcja
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
bfghjklqvwyzrictV1StGAlfabet heksadecymalny, rozmiar 16:
3f9a1c2b4e7d0f85
a0c4e8f23b6d917cTylko liczby, rozmiar 8:
04817263
93571048Alfabet niestandardowy (abc123), rozmiar 12:
b2ca31b1ca2b
3a1c2b3c1ab2Funkcje
- 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.txtjednym 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.