Przejdź do treści

Darmowy Generator Nano ID - Bezpieczne, Przyjazne URL Unikalne Identyfikatory Online

Generuj bezpieczne Nano ID natychmiast! Darmowe narzędzie online tworzy kompaktowe, przyjazne URL unikalne identyfikatory 42% krótsze niż UUID. Idealne do baz danych, API, tokenów i systemów.

Długość generowanego Nano ID (1-100 znaków)

Wybierz zestaw znaków dla Twojego Nano ID

Wygenerowany Nano ID

Wprowadź wartość, aby zobaczyć wynik

Wizualizacja

Kalkulator załadunku...
📚

Dokumentacja

Generator identyfikatorów Nano ID tworzy krótki, losowy ciąg znaków nazywany identyfikatorem Nano ID. Identyfikatory Nano ID służą jako unikatowe identyfikatory takich elementów jak rekordy baz danych, adresy URL i tokeny API, a prawdopodobieństwo, że dwa wygenerowane identyfikatory kiedykolwiek będą takie same, jest niezwykle małe.

Czym jest Nano ID?

Nano ID to losowo generowany ciąg znaków używany do oznaczania czegoś, aby można było odróżnić to od wszystkich innych elementów. Programista Andrey Sitnik stworzył ten format w 2017 roku jako mniejszą alternatywę dla identyfikatora UUID (Universally Unique Identifier), czyli identyfikatora o długości 36 znaków, szeroko stosowanego w informatyce. Domyślny Nano ID ma 21 znaków, w porównaniu z 36 znakami identyfikatora UUID, co oznacza skrócenie o około 42%.

Jak wygenerować Nano ID za pomocą tego narzędzia

Generator na tej stronie tworzy Nano ID na podstawie dwóch ustawień.

  1. Długość: liczba całkowita od 1 do 100. Wartość domyślna to 21.
  2. Zestaw znaków: grupa znaków, z których tworzony jest identyfikator. Domyślnie używany jest zestaw alfanumeryczny.

Wprowadź długość, wybierz zestaw znaków, a następnie naciśnij „Generuj”, aby utworzyć identyfikator. Naciśnij „Kopiuj”, aby go skopiować, albo „Resetuj”, aby przywrócić długość 21 i zestaw alfanumeryczny. Nowy identyfikator pojawia się także automatycznie za każdym razem, gdy zmieni się długość lub zestaw znaków. Poniżej przycisków narzędzie przedstawia każdy znak identyfikatora jako kolorowy blok: niebieski oznacza wielką literę, zielony — małą literę, pomarańczowy — cyfrę, a szary — znak interpunkcyjny.

Jeśli długość nie jest liczbą całkowitą z zakresu od 1 do 100, narzędzie wyświetla komunikat „Długość musi być liczbą całkowitą od 1 do 100” i nie tworzy identyfikatora.

Dostępne zestawy znaków

Narzędzie oferuje siedem stałych zestawów znaków. Nie przyjmuje własnego alfabetu wpisanego przez użytkownika. Zestaw „Z symbolami” dodaje do znaków alfanumerycznych następujących 26 znaków interpunkcyjnych: ! @ # $ % ^ & * ( ) _ + - = [ ] { } | ; : , . < > ?.

Zestaw znakówUżywane znakiRozmiar alfabetu
Alfanumeryczne (domyślne)A-Z, a-z, 0–962
Bezpieczne w adresach URLA-Z, a-z, 0-9, -, _64
Numeryczne0–910
AlfabetyczneA-Z, a-z52
Małe literya-z26
Wielkie literyA-Z26
Z symbolamiA-Z, a-z, 0–9 oraz 26 znaków interpunkcyjnych88

Domyślnie wybrany jest zestaw alfanumeryczny. Nie zawiera łącznika ani podkreślenia używanych w zestawie bezpiecznym w adresach URL, choć same litery i cyfry można już bezpiecznie umieszczać bezpośrednio w adresie URL.

Wzór Nano ID

Nano ID powstaje przez losowe wybieranie, po jednym, ustalonej liczby znaków z alfabetu za pomocą kryptograficznie bezpiecznego generatora liczb losowych. Jest to generator zaprojektowany tak, aby jego wynik nie dawał się wcześniej przewidzieć.

1id = random(alphabet, size)
2

Przy ustawieniach domyślnych alphabet ma 62 znaków, a size wynosi 21.

Przykład obliczeniowy

Przy użyciu domyślnego alfabetu alfanumerycznego i długości 21 jednym z możliwych wygenerowanych identyfikatorów jest:

1K7pQ2mZxT9vY4nR8jH3wL
2

Każdy znak jest niezależnie wybierany spośród 62 liter i cyfr, dlatego dwukrotne uruchomienie generatora niemal nigdy nie da tego samego ciągu.

Jak obliczać prawdopodobieństwo kolizji

Ponieważ Nano ID jest wybierany losowo, dwa wygenerowane identyfikatory mogą być takie same, choć jest to bardzo mało prawdopodobne. Nazywa się to kolizją. Prawdopodobieństwo wystąpienia co najmniej jednej kolizji po wygenerowaniu k identyfikatorów oblicza się tak samo jak w „problemie urodzinowym”:

1P(collision) ≈ 1 - e^(-k² / (2n))
2

Tutaj n oznacza liczbę możliwych identyfikatorów: rozmiar alfabetu podniesiony do potęgi równej długości identyfikatora, czyli n = alphabet_size^length.

Przykład obliczeniowy

Przy ustawieniu domyślnym, alfabecie o długości 62 znaków i długości identyfikatora 21 znaków:

1n = 62^21 ≈ 4.4 × 10^37 possible IDs
2

Rozwiązanie wzoru dla prawdopodobieństwa kolizji wynoszącego 1% daje:

1k ≈ 9.4 × 10^17 IDs
2

Oznacza to, że należy wygenerować około 940 biliardów identyfikatorów, aby prawdopodobieństwo, że dwa z nich będą takie same, wyniosło choćby 1%. Przy generowaniu miliona identyfikatorów na sekundę osiągnięcie tej liczby zajęłoby około 29 700 lat.

Zastąpienie go alfabetem bezpiecznym dla adresów URL o długości 64 znaków nieznacznie zwiększa tę liczbę — do około 1,3 × 10^18 identyfikatorów przy tym samym ryzyku 1%, ponieważ większy alfabet daje więcej możliwych identyfikatorów do wyboru.

Nano ID na tle innych identyfikatorów

TypDługośćUwagi
Nano ID21 znaków, długość regulowanaLosowy, kompaktowy, nie można go sortować według czasu
UUID36 znakówStandardowy format, szeroko obsługiwany, zawiera łączniki
ULID26 znakówMożliwość sortowania według czasu utworzenia
KSUID27 znakówMożna sortować według czasu utworzenia, zawiera znacznik czasu
Liczba całkowita zwiększana automatycznieZmiennaProsta i sekwencyjna, ale przewidywalna i trudna do uzgodnienia między oddzielnymi bazami danych

Często zadawane pytania

Jaka jest domyślna długość Nano ID i zestaw znaków?

Domyślnie jest to 21 znaków z zestawu alfanumerycznego: A-Z, a-z, 0-9, co daje łącznie 62 znaków.

Czy to narzędzie obsługuje własny alfabet?

Nie. Oferuje siedem stałych zestawów znaków: alfanumeryczny, bezpieczny w adresach URL, numeryczny, alfabetyczny, małe litery, wielkie litery oraz „Z symbolami”.

Czym Nano ID różni się od UUID?

Nano ID jest krótszy. Domyślnie ma 21 znaków, a UUID ma 36 znaków, więc Nano ID jest krótszy o około 42%. Oba są generowane losowo i nie są sekwencyjne.

Czy Nano ID można sortować według czasu utworzenia?

Nie. Nano ID są całkowicie losowe, więc nie zawierają informacji o czasie wygenerowania. Formaty takie jak ULID lub KSUID są natomiast projektowane tak, aby można je było sortować według czasu.

Czy Nano ID można bezpiecznie stosować jako klucz główny bazy danych?

Tak. Należy go przechowywać w kolumnie tekstowej lub łańcuchowej, a nie liczbowej, oraz utworzyć unikatowy indeks w celu szybkiego wyszukiwania.

Ile istnieje możliwych identyfikatorów Nano ID?

Zależy to od wybranej długości i zestawu znaków. Przy domyślnym alfabecie o długości 62 znaków i długości identyfikatora 21 znaków istnieje 62^21, czyli około 4,4 × 10^37, możliwych identyfikatorów.

Piśmiennictwo

  1. Sitnik, Andrey. "Nano ID." GitHub, https://github.com/ai/nanoid.
  2. "Universally unique identifier." Wikipedia, Wikimedia Foundation, https://en.wikipedia.org/wiki/Universally_unique_identifier.
  3. "ULID Spec." GitHub, https://github.com/ulid/spec.