KeroTools

Rastgele UUID v4 Kimlikleri Üret

Veritabanları ve kod için ihtiyacınız kadar rastgele v4 UUID'yi anında üretin.

Değerler cihazınızdan hiç çıkmaz

Hiçbir yerde kayıt tutulmaz

Platform düzeyinde rastgelelik

Her modern tarayıcıda çalışır

Nasıl çalışır

  1. 1

    Bir sürüm seçin

    Tanımlayıcı bir veritabanı dizinine gitmiyorsa v4; gidiyorsa v7’yi düşünün.

  2. 2

    Kaç tane olacağını seçin

    Hızlı bir sınama için bir tane ya da tohum verisi ve fikstürler için bir yığın.

  3. 3

    Sonucu kopyalayın

    Bir şemaya, bir isteğe, bir yapılandırma dosyasına ya da bir teste taşıyın.

Neden bu araç

Sürüm 4 ve sürüm 7

Genel kullanım için rastgele, değer birincil anahtara dönüşecekse zaman damgasıyla sıralı.

Kriptografik rastgelelik

Öngörülebilir bir sözde rastgele işlevden değil, tarayıcının güvenli rastgelelik kaynağından üretilir.

Toplu üretim

Bir tanımlayıcı ya da bin tane, tek adımda üretilir ve tohum dosyasına yapıştırmaya hazırdır.

Tireli ya da tiresiz

Hedefin beklediğine göre 36 karakterlik kurallı biçim ya da 32 karakterlik çıplak biçim.

Hiçbir şey iletilmez

Değerler tarayıcınızda üretilir, dolayısıyla hangi tanımlayıcıları kullandığınızı hiçbir üçüncü taraf öğrenmez.

Ücretsiz, hesapsız

Kayıt yok, filigran yok, kaç tane üreteceğinize dair sınır yok.

Sürüm, çoğu kişinin sandığından daha önemlidir

İnsanlar UUID der ve sürüm 4’ü kasteder; o da 122 rastgele bittir ve başka bir şey değil. Doğru varsayılan budur ama tek sürüm değildir ve farkların sonuçları vardır. Sürüm 1, tanımlayıcıyı bir zaman damgası ve makinenin ağ donanım adresinden kurar; yani bir v1 UUID, ne zaman oluşturulduğunu ve tarihsel olarak hangi makinenin oluşturduğunu sessizce açık eder — bir sistemin içinde sorun değil, bir müşterinin görebildiği her şeyde rahatsız edici. Yakın zamanda standartlaşan sürüm 7 ise rastgeleliği korur ama öndeki bitlere milisaniyelik bir zaman damgası koyar, böylece değerler kronolojik sıralanır. Hangi tür olduğunu düşünmeden UUID ürettiyseniz, neredeyse kesinlikle v4’tü ve çoğu kullanım için doğru yanıt odur. İstisna aşağıdadır.

Rastgele tanımlayıcılar bir veritabanı dizinini zorlar

UUID’lerle ilgili en sonuç doğurucu pratik olgu budur ve tam sayılardan geçenleri şaşırtır. Bir veritabanı dizini sıralı bir yapıdır ve sıralı yapılar sırayla gelen değerleri sever. Bir tam sayı dizisi dizinin sonuna eklenir, tek bir sayfaya tekrar tekrar dokunur ve onu bellekte tutar. Bir v4 UUID akışı ise tasarım gereği rastgeledir, bu yüzden her ekleme başka bir yere düşer; bu da dizini dağınık sayfalara yazmaya, onları bölmeye ve yetişebilmek için yapının çok daha büyük bir kısmını önbellekte tutmaya zorlar. Büyük bir tabloda fark ölçülebilirdir ve belirti, UUID anahtarlarına geçtikten sonra yavaşlayan sistemin bildik hikâyesidir. Sürüm 7 tam bunun için var: öndeki zaman damgası yeni değerlerin birbirine yakın sıralanmasını sağlar, böylece eklemeler yine yerel kalır ve tanımlayıcılar tahmin edilemez olmayı sürdürür.

UUID bir sır değildir, siz onu bilerek sır yapmadıkça

Burada iki iddia birbirine karışır ve ikisi de önemlidir. Birincisi, bir v4 UUID gerçekten tahmin edilemez — 122 rastgele bit kaba kuvvetin çok ötesindedir — ama yalnızca rastgelelik kriptografikse. Pek çok kod UUID’leri genel amaçlı bir rastgele işlevden üretir; bu hızlıdır ve öngörülebilirdir, öngörülebilir kaynaktan gelen tanımlayıcılar ise tohumu çözen herkesçe sayılıp dökülebilir. Üretecinizin ne kullandığını denetleyin. İkincisi, kusursuz bir v4 bile bir tanımlayıcıdır, bir yetkilendirme değil. Tahmin edilemez bir UUID’yi paylaşım bağlantısı olarak kullanmak işe yarar ve şu anlama gelir: URL parolanın kendisidir; tarayıcı geçmişinde, yönlendiren başlıklarında, bir sohbet kaydında ve iletildiği her e-postada durur. Bu, bir belge bağlantısı için kabul edilebilir, iptal edilmesi gereken hiçbir şey için değildir.

Çakışma güvencesi aslında ne diyor

UUID’lerin eşgüdüm olmadan işlemesinin nedeni olasılıksal bir argümandır ve sayıları bilmeye değer, ki artık onlar için endişelenmeyesiniz. 122 rastgele bitle, herhangi ikisinin eşleşme olasılığının yüzde ellilere çıkması için kabaca 2,7 kentilyon sürüm 4 UUID üretmeniz gerekir. Saniyede bir milyonla bu on binlerce yıl eder; dünyanın iki ucundaki sistemlerin merkezî bir sicil olmadan tanımlayıcı basıp hiç eşgüdüm kurmamasının nedeni budur. Güvencenin tümüyle dayandığı şey rastgeleliğin niteliğidir. Zayıf ya da kötü tohumlanmış bir üreteç o sayıyı hiçbir uyarı vermeden çökertir ve üretimdeki yinelenen UUID’ler neredeyse her zaman kötü şansa değil kusurlu bir kaynağa dayanır — birkaç bilinen olayda cihazlar açılışta rastgelelik kaynaklarını birebir aynı tohumlamıştı.

Saklamak sandığınızdan pahalıya gelir

Bir UUID 128 bittir — 16 bayt — ama genelde gördüğünüz biçim 36 karakterlik metindir, çünkü kurallı gösterim her baytı iki onaltılık basamak olarak yazar ve dört tire ekler. Bunu bir dize olarak saklarsanız satır başına 16 yerine 36 bayt kullanıyorsunuz demektir, artı veritabanınızın değişken uzunluklu bir sütun için eklediği ne varsa; o sütundaki her dizin de aynı şişkinliği taşır. Birkaç bin satırlık bir tabloda kimse fark etmez. Yüz milyon satırlık bir tabloda, bellekte kalması gereken bir dizinde, sığmakla sığmamak arasındaki farktır. Çoğu veritabanının tam bu nedenle yerel 16 baytlık bir türü vardır ve onu kullanmak genellikle doğru karardır. Biçimlendirme ayrıntıları buna kıyasla küçüktür: tireler zorunlu değil geleneksel, karşılaştırma büyük-küçük harf duyarsız ve küçük harf kurallı çıktıdır.

Rastgele değerlerde bile yerel üretim neden önemli

Gizliliğin rastgele bir sayıyla ne ilgisi olduğunu sormak yerindedir ve yanıt şudur: sayı, bir şeye bağlandığı anda anonim olmaktan çıkar. Barındırılan bir üreteç verdiği her tanımlayıcıyı görür ve onları isteği yapan adres ve zamanla birlikte kaydedebilir. O UUID’ler sonra sisteminizde sipariş numarası, paylaşım bağlantısı, API anahtarı ya da veritabanı tanımlayıcısı olursa, geçerli değerlerin bir listesi ve nelere ait olduklarına dair iyi bir fikir başkasının elinde demektir. Bu küçük ve tümüyle gereksiz bir risktir, çünkü yerel üretim onu bütünüyle kaldırır: tarayıcınızda yerleşik bir kriptografik rastgelelik kaynağı vardır, değerler sayfadan çıkmaz ve hiçbir istek yapılmadığını geliştirici araçlarının Ağ sekmesinde doğrulayabilirsiniz.

Kaçınılması gereken yaygın hatalar

  • Büyük bir tabloda v4 UUID’leri birincil anahtar olarak kullanmak. Rastgele değerler dizin yazmalarını dağıtır ve yapıyı parçalar — öndeki zaman damgasıyla eklemeleri yerel tutan ve yine tahmin edilemez kalan v7’yi kullanın.
  • UUID’leri genel amaçlı bir rastgele işlevden üretmek. Yalnızca kriptografik bir kaynak onları tahmin edilemez kılar; öngörülebilir bir tohum, saldırganın tanımlayıcıları sayıp dökebilmesi demektir.
  • Tahmin edilemez bir UUID’yi yetkilendirme saymak. Ondan kurulmuş bir paylaşım bağlantısı, URL’nin parola olması demektir; URL’ler ise geçmişte, yönlendiren başlıklarında ve iletilen e-postalarda birikir.
  • Ölçekte bir UUID’yi 36 karakterlik dize olarak saklamak. Değer 16 bayttır; metin biçimi bunu her satırda ve her dizinde iki katından fazlasına çıkarır — çoğu veritabanının yerel bir türü vardır.
  • Müşterinin gördüğü hiçbir yerde v1 kullanmak. O, oluşturma zamanını ve tarihsel olarak makinenin ağ donanım adresini kodlar; bir tanımlayıcının açık etmesi gerekenden fazlasıdır.

Karşılaştırma

ÖlçütBu araçÇevrimiçi üreteçlerBir kitaplık çağrısı
Değerler iletilir ya da kaydedilirAslaOlabilirHayır
v7 mevcutEvetNadirenKitaplığa bağlı
Kriptografik rastgelelikEvetGenellikle belirtilmezGenellikle evet
Toplu üretimEvetBazenEvet
Proje açmadan çalışırEvetEvetHayır
FiyatÜcretsizÜcretsiz / ücretli paketÜcretsiz

Özellikler

UUID v4

Çoğu sistemin UUID derken kastettiği 122 rastgele bitlik sürüm.

UUID v7

Zaman damgası önekli ve bu yüzden sıralanabilir; bir veritabanı dizininin istediği budur.

Büyük ya da küçük harf

Kurallı biçim küçük harftir; bazı sistemler büyük harfte ısrar eder ve ikisi de burada.

Toplu üretim

Bir kerede yüzlerce, satır başına bir tane, bir tohum betiği ya da tablo sütunu için hazır.

Platformun CSPRNG’sini kullanır

Değerler genel amaçlı bir üreteçten değil, tarayıcının kriptografik üretecinden gelir.

Anında, istek yok

Hiçbir şey çekilmez, dolayısıyla üretim anlıktır ve sekme zaten yüklüyken çalışır.

Kurulum gerekmez

Kitaplık, çalışma ortamı ya da bağımlılık yok — web sayfasında çalışır.

Arapça ve RTL uyumlu

Sağdan sola Arapça dahil sekiz dilde tam arayüz.

Varsayılan olarak güvenli

HTTPS üzerinden sunulur, izleme ve üçüncü taraf isteği yoktur.

Kimler kullanıyor

Geliştiriciler

Bir fikstür ya da elle eklenen veritabanı satırı için konsol açmadan geçerli bir tanımlayıcı almak.

Veritabanı mühendisleri

Bir tablo tahmin edilemez ama iyi dizinlenen anahtarlar istediğinde v7 değerleri üretmek.

Test mühendisleri

Test verisi için bir yığın benzersiz tanımlayıcıyı tek adımda üretmek.

API entegratörleri

Bir istek için idempotency anahtarı ya da ilişkilendirme tanımlayıcısı oluşturmak.

Sıkça Sorulan Sorular

Hayır. Her şey tarayıcınızda yerel çalışır — metniniz asla yüklenmez, saklanmaz veya paylaşılmaz.

Evet — tamamen ücretsiz, hesap ve sınır yok.