NanoID Nedir?

NanoID, JavaScript için küçük, URL-güvenli bir benzersiz kimlik oluşturucudur. İstatistiksel olarak benzersiz kompakt rastgele dizeler üretir — UUID v4'e benzer, ancak varsayılan olarak daha kısa (21 karakter vs 36) ve herhangi bir kodlama olmadan URL-dostu olacak şekilde tasarlanmıştır. Her karakter, dikkatli bir şekilde dengeli bir alfabeden seçilir, böylece her olası kimlik eşit olasılıkta olur ve dağılımda önyargı ortadan kalkar.

NanoID, kriptografik olarak güçlü bir rastgele sayı oluşturucusu kullanır (tarayıcılarda crypto.getRandomValues, Node.js'de crypto.randomFill), bu da oluşturulan kimlikləri oturum token'ları ve tek seferlik bağlantılar gibi güvenliğe duyarlı bağlamlar için uygun hale getirir. Varsayılan 21 karakterlik uzunluk kabaca 2,1 × 10³⁰ olası kombinasyon verir — UUID v4'e benzer — kompakt format ise bant genişliği ve depolama alanından tasarruf sağlar.

Araç açıklaması

Bu çevrimiçi NanoID oluşturucusu, kurulum gerektirmeden tarayıcınızda anında bir veya daha fazla NanoID oluşturmanıza olanak tanır. Kimlik uzunluğunu, kaç kimlik oluşturulacağını ve hangi alfabenin kullanılacağını kontrol edebilirsiniz — güvenli varsayılandan hex, alfanümerik, yalnızca sayılar veya tamamen özel bir karakter seti seçeneğine kadar.

Örnekler

Varsayılan alfabe, boyut 21:

V1StGXR8_Z5jdHi6B-myT
useandom-26T198340PX7
bfghjklqvwyzrictV1StG

Hex alfabe, boyut 16:

3f9a1c2b4e7d0f85
a0c4e8f23b6d917c

Yalnızca sayılar, boyut 8:

04817263
93571048

Özel alfabe (abc123), boyut 12:

b2ca31b1ca2b
3a1c2b3c1ab2

Özellikler

  • Ayarlanabilir uzunluk: Kimlik boyutunu 1 ile 64 karakter arasında ayarlayın (varsayılan 21)
  • Toplu oluşturma: Aynı anda 1.000'e kadar kimlik oluşturun
  • Alfabe ön ayarları: Varsayılan, Sayılar, Küçük Harf, Büyük Harf, Alfanümerik, Hex, Büyük Harf Hex, Benzer Görünümlü Olmayan veya tamamen özel bir karakter seti arasından seçim yapın
  • Benzer Görünümlü Olmayan ön ayarı: Görsel olarak belirsiz karakterleri (örn. 0, O, I, l) kaldırarak insan tarafından okunabilir kimlikler oluşturur
  • Dosya olarak indir: Oluşturulan tüm kimlikləri nanoids.txt dosyasına tek tıklamayla kaydedin

Kullanım durumları

  • Uygulama geliştirme: NanoID'leri veritabanlarında birincil anahtar olarak veya tam UUID yerine kısa, URL-güvenli bir dize tercih edilen API'lerde kayıt tanımlayıcıları olarak kullanın.
  • Token oluşturma: Parola sıfırlama bağlantıları, davet kodları veya referral slug'ları için kısa rastgele token'lar oluşturun; burada okunabilirlik ve URL güvenliği önemlidir.
  • Test ve sahte veri: Test fixture'larını doldurmak veya prototip verilerini oluşturmak için hızlı bir şekilde gerçekçi görünümlü benzersiz tanımlayıcılar üretin.

Seçenekler açıklaması

Seçenek Açıklama
Boyut Oluşturulan her kimlikte karakter sayısı (1–64). Varsayılan 21, ~126 bit entropi verir, UUID v4'e eşdeğerdir.
Miktar Bir toplu işlemde kaç kimlik oluşturulacağı (1–1.000).
Alfabe Çekilecek karakter havuzu. Daha büyük, daha çeşitli alfabeler karakter başına entropiyi artırır.
Özel alfabe Özel seçildiğinde görünür. Herhangi bir karakter girin; çarpık dağılımı önlemek için yinelemeler otomatik olarak kaldırılır.

Nasıl çalışır

NanoID, rastgele bir bayt oluşturarak, bunu alfabe boyutuna sığdırmak için maskeleyerek ve sonuç geçerli aralığın dışında kalırsa yeniden deneyerek her karakteri seçer — bu tekniğe reddetme örneklemesi denir. Bu, alfabe boyutunun ikinin kuvveti olup olmadığına bakılmaksızın tüm alfabe karakterleri arasında mükemmel bir düz dağılım sağlar. Varsayılan alfabe (useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict) URL-güvenlidir (hiçbir +, / veya = yok) ve 64 karaktere sahiptir, bu da her karakterin tam olarak 6 bit entropi taşıması anlamına gelir.