Skip to content

Ücretsiz ULID Üretici — ULID Oluşturun ve Çözün

ULID'leri çevrimiçi oluşturun, çözün ve dönüştürün — ücretsiz ve %100 tarayıcınızda. Gömülü zaman damgasını çıkarın, ULID'yi UUID'ye ve geri dönüştürün, monoton modla toplu üretin. Hiçbir şey sunucuya gönderilmez.

Takip Yok Tarayıcıda Çalışır Ücretsiz
Her ULID, tarayıcınızın kriptografik RNG'i (crypto.getRandomValues) ile yerel olarak üretilir. Hiçbir şey yüklenmez, günlüğe kaydedilmez veya saklanmaz.

Her ULID taze 80 bitlik rastgelelik kullanır.

ULID nedir?

Bir ULID — Universally Unique Lexicographically Sortable Identifier — rastgele UUIDv4'ün pratik bir zayıflığını gidermek için, en iyi özelliğini koruyarak oluşturulmuş 128 bitlik bir tanımlayıcıdır: birini herhangi bir yerde, merkezi bir koordinatör olmadan üretebilir ve benzersiz olduğundan emin olabilirsiniz. Fark, bir ULID'nin zamana göre sıralanabilir olmasıdır. Crockford Base32 ile 26 karakter olarak gösterilir ve iki parçaya bölünür: ilk 10 karakter Unix epoch'undan bu yana milisaniye sayan 48 bitlik bir zaman damgasıdır; son 16 karakter ise kriptografik olarak güvenli 80 bitlik rastgeleliktir. Zamanı başa koyun, onu sırayı koruyan bir alfabeyle kodlayın ve tanımlayıcı düz bir karakter dizisi olarak kronolojik sıralanır.

O tek tasarım tercihinin veritabanları için boyutunu aşan sonuçları vardır. Rastgele bir UUIDv4 birincil anahtarı her eklemede bir B-tree indeksinde öngörülemez bir noktaya düşer; bu da indeksi parçalar, önbelleği yıpratır ve bir tablo büyüdükçe yazma performansını yavaşça düşürür. Bir ULID ise zaman önekli olduğundan her seferinde indeksin sonuna ya da sonuna yakın bir yere düşer — eklemeler ardışık kalır, indeks kompakt kalır ve bir zaman penceresi üzerindeki aralık taramaları ucuzlar. Bir UUID'nin koordinasyon gerektirmeyen üretimini ve otomatik artan bir tam sayının ekleme yerelliğini, tahmin edilebilir ardışık bir sayaç açığa çıkarmadan elde edersiniz.

Kodlama ayrıntıları kasıtlıdır. Crockford Base32, hem 1 ve 0 rakamlarıyla görsel karışmayı önlemek hem de girdide karakter dizisini büyük/küçük harfe duyarsız kılmak için I, L, O ve U harflerini dışlar. Sonuç, tiresiz ve kaçışlama olmadan bir URL'ye, bir dosya adına ya da bir istek başlığına bırakılması güvenli olan 26 karakterdir — bir UUID'nin tireli 36 karakterlik biçiminden gözle görülür biçimde daha kısa. 48 bitlik zaman damgası uzun süre tükenmez: milisaniye sayacı taşmadan önce 10889 yılına kadar olan tarihleri temsil edebilir.

ULID'ler her şey için doğru araç değildir. Gömülü zaman damgası bir kaydın ne zaman oluşturulduğunu açığa çıkarır; bu hata ayıklama ve sıralama için bir özelliktir ama bunu açığa çıkarmak istemiyorsanız küçük bir bilgi sızıntısıdır. Ve yığınınız UUID türüne bağlıysa, aynı zaman önekli fikri standart UUID biçimi içinde uygulayan UUIDv7'yi tercih edebilirsiniz. Ama herhangi bir düğümde üretebileceğiniz ve içinden bir zaman damgası okuyabileceğiniz kısa, URL güvenli, sıralanabilir tanımlayıcılar istediğinizde, bir ULID mükemmel bir varsayılandır — ve yalnızca 128 bit olduğundan, bu aracın Dönüştür sekmesiyle onu her zaman bir UUID'ye ve geri dönüştürebilirsiniz.

// Browser / Node with the `ulid` package
import { ulid, decodeTime } from 'ulid';

const id = ulid();          // e.g. 01KVT0F720ZK9N4T2QX7VR8WMC
const ts = decodeTime(id);  // 1782210600000  ->  2026-06-23T10:30:00.000Z

// Monotonic factory: strictly increasing within the same millisecond
import { monotonicFactory } from 'ulid';
const next = monotonicFactory();
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WMC
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WMD
next(1782210600000); // 01KVT0F720ZK9N4T2QX7VR8WME

Temel özellikler

Tek Sayfada Üretme, Çözme ve Dönüştürme

Üç sekme tüm ULID iş akışını kapsar: yeni ULID'ler üretin, mevcut birini çözüp zaman damgasını okuyun ve ULID ile UUID arasında kayıpsız dönüştürün. Rakip araçların çoğu yalnızca ilkini yapar; burada eksiksiz gidiş-dönüş tek bir sayfada yer alır.

Zaman Damgası Çözücü

Herhangi bir ULID'yi yapıştırın ve oluşturulduğu tam milisaniyeyi okuyun — UTC'de, yerel saatinizde ve ham Unix milisaniyesi olarak gösterilir — ayrıca 80 bitlik rastgelelik bölümü. Bir tanımlayıcının ne zaman üretildiğini hiçbir veritabanı sorgusu olmadan denetleyin.

Kayıpsız ULID ↔ UUID Dönüşümü

Bir ULID ile bir UUID, ikisi de 128 bittir; bu yüzden dönüşüm kesin ve geri döndürülebilirdir. Dönüştür sekmesi hangi biçimi yapıştırdığınızı otomatik algılar ve diğerini üretir; böylece sıralanabilir bir ULID ile UUID türünde bir sütun ya da API arasında tek bir bit kaybetmeden köprü kurarsınız.

Monoton Mod

Aynı milisaniye içinde oluşturulan kimlikler için bile kesin sıralama mı gerekiyor? Monoton mod rastgeleliği artırır; böylece her ULID bir öncekinden büyük olur ve sıkı bir ekleme döngüsü kusursuz şekilde sıralı kalır.

Toplu Üretim

Tek seferde 50'ye kadar ULID oluşturun ve Tümünü Kopyala ile tümünü kopyalayın. Test fixture'larını beslemek, toplu eklemeler ya da elli kez tıklamadan bir arama tablosu doldurmak için idealdir.

Özel Zaman Damgası

Şimdiki an yerine belirli bir anı gömün — deterministik test verileri ya da bir taşıma sırasında kayıtları, sıralanabilirlik özelliğini koruyarak geriye tarihlemek için kullanışlıdır.

Kriptografik Olarak Güvenli Rastgelelik

80 rastgele bit, tarayıcının CSPRNG'i olan crypto.getRandomValues'tan gelir — asla Math.random'dan değil — bu yüzden her ULID öngörülemezdir ve aynı milisaniyedeki çakışmalar yok denecek kadar olasıdır.

%100 Gizli, Yalnızca Tarayıcı

Her ULID tamamen cihazınızda üretilir, çözülür ve dönüştürülür. Hiçbir ağ isteği, günlük kaydı, depolama yok — bunu Geliştirici Araçları → Ağ sekmesinde kendiniz teyit edin. Tanımlayıcılar asla üçüncü bir tarafa ulaşmaz.

ULID örnekleri

Tek bir ULID üretme

Mod: Standart · Miktar: 1
01KVT0F720ZK9N4T2QX7VR8WMC

Bir ULID, Crockford Base32 ile 26 karakterdir. İlk 10 karakter 48 bitlik bir milisaniye zaman damgasını kodlar; son 16 karakter ise crypto.getRandomValues'tan çekilen, kriptografik olarak güvenli 80 bitlik rastgeleliği kodlar. Zaman damgası başta geldiğinden ve Base32 bayt sırasını koruduğundan, sonradan üretilen ULID'ler düz karakter dizileri olarak her zaman daha öncekilerden sonra sıralanır — ayrı bir indekse gerek yoktur. Değeri almak için Kopyala'ya, yenisi için yeniden Üret'e tıklayın.

Zaman damgasını okumak için bir ULID'yi çözme

01ARYZ6S41TSV4RRFFQ69G5FAV
Zaman damgası (UTC): 2016-07-30T22:36:16.385Z · Rastgelelik: TSV4RRFFQ69G5FAV

Çözme, ilk 10 karakteri oluşturulma anında gömülen 48 bitlik milisaniye değerine geri çevirir — burada 1469918176385 ms, yani 2016-07-30T22:36:16.385Z. Bu, ULID spesifikasyonundaki kanonik örnektir. Çöz sekmesi zaman damgasını UTC ve yerel saatinizle, ham Unix milisaniyesini ve 80 bitlik rastgelelik bölümünü gösterir; böylece bir tanımlayıcının tam olarak ne zaman üretildiğini hiçbir veritabanı sorgusu olmadan denetleyebilirsiniz.

Bir ULID'yi UUID'ye dönüştürme

01KVT0F720ZK9N4T2QX7VR8WMC
019ef407-9c40-fcd3-5268-57e9f784728c

Bir ULID ile bir UUID, ikisi de tam olarak 128 bittir; bu yüzden dönüştürme kayıpsız ve tamamen geri döndürülebilirdir — aynı bitler yalnızca Crockford Base32'den tireli onaltılığa yeniden kodlanır. Dönüştür sekmesi, bir ULID mi yoksa bir UUID mi yapıştırdığınızı otomatik algılar ve diğer biçime dönüştürür. Bu, ULID'leri bir UUID sütununda saklamanıza ya da yalnızca UUID anlayan bir sisteme bir ULID vermenize, ardından sıralanabilir karakter dizisine ihtiyaç duyduğunuzda geri dönüştürmenize olanak tanır.

Monoton ULID'leri toplu üretme

Mod: Monoton · Miktar: 3 (aynı milisaniye)
01KVT0F720ZK9N4T2QX7VR8WMC
01KVT0F720ZK9N4T2QX7VR8WMD
01KVT0F720ZK9N4T2QX7VR8WME

Aynı milisaniye içinde çok sayıda kimlik oluşturulduğunda, düz ULID'ler 10 karakterlik zaman önekini paylaşır ama rastgele kuyrukları sırasızdır. Monoton mod bunu giderir: bir milisaniye içinde önceki rastgeleliği bir artırır; böylece her ULID bir öncekinden kesinlikle büyük olur ve bir toplu iş kusursuz şekilde sıralı kalır. Üç değerin yalnızca son karakterde (C, D, E) farklılaştığına dikkat edin — sıralamanın milisaniye altı hızlarda bile korunması gereken yüksek hacimli eklemeler için idealdir.

Belirli bir tarih için ULID üretme

Özel zaman: 2026-06-23 10:30:00 UTC
01KVT0F720… (zaman bileşeni 01KVT0F720)

Özel bir zaman damgası belirleyin; üretici şimdiki an yerine tam o anı gömerken rastgeleliği güvenli bir RNG'den doldurmaya devam eder. 2026-06-23T10:30:00.000Z için 10 karakterlik zaman bileşeni 01KVT0F720'dir. Bu, deterministik, zamana göre sıralı tanımlayıcılarla test fixture'larını beslemek ya da bir taşımada kayıtları geriye tarihlerken sıralanabilirlik özelliğini bozmadan korumak için kullanışlıdır.

ULID üretici nasıl kullanılır

  1. 1

    Bir üretim modu seçin

    Standart mod her ULID'ye taze 80 bitlik rastgelelik verir. Monoton mod, aynı milisaniye içinde oluşturulan ULID'lerin kesinlikle arttığını garanti eder — sıralamanın milisaniye altı hızlarda bile korunması gereken yüksek hacimli eklemeler için bunu seçin.

  2. 2

    Miktarı, harf durumunu ve (isteğe bağlı) özel bir zamanı belirleyin

    Tek seferde 1 ile 50 arasında ULID üretin. Çıktı varsayılan olarak BÜYÜK HARF'tir — kanonik ULID biçimi — ya da küçük harfe geçin. Şimdiki anı damgalamak için zamanı boş bırakın veya fixture'lar ya da geriye tarihli kayıtlar için belirli bir anı gömmek üzere özel bir zaman damgası ayarlayın.

  3. 3

    Üretin ve kopyalayın

    ULID Üret'e tıklayın. Tek bir değer için Kopyala'yı, tüm toplu işi koda, bir seed dosyasına ya da bir elektronik tabloya yapıştırmaya hazır, satır sonuyla ayrılmış metin olarak almak için Tümünü Kopyala'yı kullanın.

  4. 4

    Zaman damgasını okumak için bir ULID'yi çözün

    Çöz sekmesinde, 48 bitlik oluşturulma zaman damgasını UTC ile yerel saatte, ham Unix milisaniyesini ve 80 bitlik rastgeleliği çıkarmak için herhangi bir ULID'yi yapıştırın — tamamen tarayıcınızda, hiçbir sorgu gerekmeden.

  5. 5

    ULID ile UUID arasında dönüştürün

    ULID ↔ UUID sekmesinde bir ULID ya da bir UUID yapıştırın; araç girdiyi otomatik algılar ve diğer biçime kayıpsız dönüştürür. ULID'leri UUID sütunlarında saklayın ya da yalnızca UUID kabul eden bir sisteme bir ULID verip sıralanabilir karakter dizisine ihtiyaç duyduğunuzda geri dönüştürün.

Common Errors

Aynı milisaniyedeki ULID'leri sıralı saymak

Bir milisaniye içinde oluşturulan düz ULID'ler zaman önekini paylaşır ama rastgele kuyrukları sırasızdır; bu yüzden göreli sıraları tanımsızdır. O hızda kesin sıralamaya bağımlıysanız, bunun yerine monoton modu kullanın.

✗ Yanlış
Standart mod, bir ms'de 3 kimlik  →  ms içindeki sıra rastgeledir
✓ Doğru
Monoton mod, bir ms'de 3 kimlik  →  …WMC < …WMD < …WME

Dönüştürülmüş bir ULID'nin geçerli bir UUIDv4 olmasını beklemek

Bir ULID'yi UUID biçimine dönüştürmek aynı 128 biti yeniden kodlar; UUID sürüm ve varyant alanlarını belirlemez. Sonuç geçerli bir 128 bitlik UUID karakter dizisidir ama bir kütüphane o bitleri incelerse sürüm 4 ya da 7 olarak raporlanmaz.

✗ Yanlış
uuid.version(ulidToUuid(id))  →  4 değil (bitler ULID'nindir)
✓ Doğru
Onu opak bir 128 bitlik değer olarak ele alın ya da gerçek bir UUIDv7 üretin

Bir ULID'ye elle küçük harf i, l, o yazmak

Crockford Base32, I, L, O ve U'yu dışlar. Çözücüler I ve L'yi 1'e, O'yu 0'a eşler, ama bu harfleri bir ULID'ye elle yazmak hataya açıktır. ULID'leri yeniden yazmak yerine kopyalayın.

✗ Yanlış
01ARYZ6S41TSV4RRFFQ69G5FAO  →  belirsiz O
✓ Doğru
01ARYZ6S41TSV4RRFFQ69G5FAV  →  yalnızca kanonik karakterler

ULID'ler ne için kullanılır

Sıralı Kalan Veritabanı Birincil Anahtarları
Bir UUID'nin koordinasyon gerektirmeyen üretimini, otomatik artan bir tam sayının ekleme yerelliğiyle elde etmek için ULID'leri birincil anahtar olarak kullanın. Zaman önekli olduklarından, yeni satırlar UUIDv4 gibi dağılmak yerine bir B-tree indeksinin sonuna yakın eklenir; bu da tablo büyüdükçe eklemeleri hızlı ve indeksi kompakt tutar.
Merkezi Dizi Olmadan Dağıtık Sistemler
Tanımlayıcıları herhangi bir düğümde — servis, edge worker ya da istemci — paylaşılan bir sayaç ve çakışma koordinasyonu olmadan üretin, ama yine de her şeyi sonradan oluşturulma zamanına göre sıralayın. ULID'ler, mikroservislere onu ayırmak için bir veritabanı gidiş-dönüşü gerekmeden benzersiz, sıralı bir anahtar verir.
Olay Logları ve Mesaj Kimlikleri
Olayları, log satırlarını ya da kuyruk mesajlarını monoton ULID'lerle damgalayın; böylece birçoğu aynı milisaniye içinde üretilse bile kesin kronolojik sırada kalsınlar. Bir zaman penceresinin aralık taraması basit bir karakter dizisi karşılaştırmasına dönüşür.
URL Güvenli Genel Tanımlayıcılar
Bir ULID, tiresiz ve URL güvenli alfabeyle 26 karakterdir; bu yüzden bir yola, bir dosya adına ya da bir başlığa kaçışlama olmadan girer ve 36 karakterlik bir UUID'den kısadır. Kaynağın ne zaman oluşturulduğunu görmek için gömülü zaman damgasını sonradan çözün.
Yalnızca UUID Kabul Eden Bir Sisteme Köprü
Yalnızca UUID kabul eden bir veritabanı sütunu ya da API ile mi çalışıyorsunuz? Sıralanabilir ULID'ler üretin, bunları depolama ya da aktarım için UUID biçimine dönüştürün ve kompakt sıralanabilir karakter dizisine ihtiyaç duyduğunuzda geri dönüştürün — 128 bitlik değer her iki yönde de tam olarak korunur.
Deterministik Test Fixture'ları
Özel zaman seçeneğiyle testleri seçilmiş zaman damgalarındaki ULID'lerle besleyin; böylece fixture'lar tekrarlanabilir ve önceden zamana göre sıralı olsun. Kodunuzun kaydettiği oluşturulma zamanını doğrulamak için bunları assertion'larda çözün.

ULID'ler nasıl çalışır

128 Bitlik Düzen: 48 Bit Zaman + 80 Bit Rastgelelik
Bir ULID tam olarak 128 bittir. Yüksek 48 bit bir milisaniye Unix zaman damgasıdır; düşük 80 bit rastgeledir. Karakter başına 5 bitle Crockford Base32'de kodlandığında, bu zaman için 10 karakter, rastgelelik için 16 karakter — toplam 26 karakter eder. Önde gelen karakter her zaman 7 ya da daha küçüktür, çünkü 48 bit en üstteki 5 bitlik grubu doldurmaz.
Crockford Base32 Kodlaması
ULID'ler Crockford Base32 alfabesini kullanır (0–9 ve I, L, O, U dışındaki A–Z). Bu dört harfi dışlamak, 1 ve 0 rakamlarıyla karışmayı önler ve çözücülerin karakter dizisini büyük/küçük harfe duyarsız ele almasına, girdide I ve L'yi 1'e, O'yu 0'a eşlemesine olanak tanır. Alfabe sıralıdır; kodlanmış karakter dizisinin altta yatan bitlerle aynı şekilde sıralanmasını sağlayan budur.
Sözlüksel Sıralanabilirlik
Zaman damgası en anlamlı bileşen olduğundan ve Base32 alfabesi sırayı koruduğundan, iki ULID'yi karakter dizisi olarak karşılaştırmak, onların 128 bitlik değerlerini karşılaştırmakla aynı sonucu verir; bu da onların oluşturulma zamanlarını karşılaştırmakla aynı sonucu verir. Düz bir ORDER BY'ın ya da dizi sıralamasının ekstra bir indeks olmadan kronolojik sıra üretmesini sağlayan budur.
Bir Milisaniye İçinde Monotonluk
ULID spesifikasyonunun monoton seçeneği, aynı milisaniyede üretilen kimlikler için sıralamayı kararlı tutar: bir milisaniyedeki ilk kimliğin rastgeleliği normal şekilde üretilir; o milisaniyedeki sonraki her kimlik, önceki rastgele değerin bir fazlasıdır. Bu araç bunu, 80 bitlik rastgeleliği big-endian bir tam sayı olarak artırarak uygular.
crypto.getRandomValues ile Güvenli Rastgelelik
80 rastgele bit, Math.random değil, Web Crypto CSPRNG'i olan crypto.getRandomValues'tan doldurulur. 80 bit entropi ile, aynı milisaniye içinde milyonlarca ULID üretmek bile çakışma olasılığını ihmal edilebilir derecede küçük tutar.
ULID ↔ UUID Saf Bir Yeniden Kodlamadır
ULID ile UUID arasında dönüştürmek hiçbir biti değiştirmez — aynı 128 biti Crockford Base32'den tireli onaltılığa ya da geriye yeniden kodlar. Sonuç olarak gidiş-dönüş kesindir: bir UUID'ye dönüştürülüp geri getirilen bir ULID, orijinaliyle bayt bayt aynıdır. Bir ULID'nin baytlarının UUID sürüm ve varyant alanlarını belirlemediğini unutmayın; bu yüzden ortaya çıkan UUID geçerli bir 128 bitlik değerdir ama sürüm etiketli bir UUIDv4 ya da v7 değildir.

ULID en iyi uygulamaları

Yüksek Hacimli Eklemeler İçin Monoton Modu Kullanın
Sisteminiz milisaniye başına birden fazla tanımlayıcı oluşturabiliyorsa ve sıralamaya güveniyorsanız, monoton ULID'ler üretin. Düz ULID'ler bir milisaniye içinde sırasızdır; monoton olanlar kesinlikle artar, bu yüzden ne kadar hızlı üretirseniz üretin bir toplu iş sıralı kalır.
ULID'leri Kompakt Saklayın
Bir ULID 128 bittir — alan ve indeks boyutu önemli olduğunda onu 26 karakterlik bir metin alanı yerine 16 ikili bayt ya da UUID türünde bir sütun olarak saklayın. Base32 karakter dizisine yalnızca insanların ya da URL'lerin gördüğü kenarlarda dönüştürün. Bu aracın Dönüştür sekmesi size depolama için UUID biçimini verir.
Zaman Damgasının Görünür Olduğunu Unutmayın
Bir ULID, oluşturulma zamanını onu okuyabilen herkese açığa çıkarır. Bu hata ayıklama ve sıralama için harikadır, ama oluşturulma zamanını açığa çıkarmak bir endişeyse — diyelim ki herkese açık bir tanımlayıcıda — bu sızıntıyı tartın ya da sıralamanın önemsiz olduğu durumlarda tamamen rastgele bir UUIDv4 kullanın.
Daima Bir CSPRNG ile Üretin
Benzersizlik garantisi, 80 rastgele bitin öngörülemez olmasına bağlıdır. Bu aracın yaptığı gibi crypto.getRandomValues gibi kriptografik olarak güvenli bir kaynak kullanın — asla, öngörülebilirliği tanımlayıcıların çakışmasına ya da tahmin edilmesine yol açabilecek Math.random'ı değil.
ULID ya da UUIDv7'yi Bilinçli Seçin
Her ikisi de zamana göre sıralı 128 bitlik kimlikler verir. En kısa URL güvenli karakter dizisi için ULID'yi; sürüm ve varyant bitleriyle standart UUID biçiminde kalmanız gerektiğinde UUIDv7'yi seçin. Sistem başına birinde standartlaşın ve sınırı geçmeniz gerektiğinde Dönüştür sekmesini kullanın.

ULID — sık sorulan sorular

ULID nedir?
ULID (Universally Unique Lexicographically Sortable Identifier), bir UUID'ye göre daha sıralanabilir, daha kompakt bir alternatif olarak tasarlanmış 128 bitlik bir tanımlayıcıdır. Crockford Base32 ile 26 karakter olarak yazılır: ilk 10 karakter Unix epoch'undan bu yana milisaniye cinsinden 48 bitlik bir zaman damgası tutar; kalan 16 karakter 80 bitlik rastgelelik tutar. Zaman damgası en anlamlı kısım olduğundan ve Base32 sırayı koruduğundan, sonradan oluşturulan ULID'ler düz karakter dizileri olarak karşılaştırıldığında her zaman daha öncekilerden sonra sıralanır — yani bir ULID sütunu doğal olarak zamana göre sıralıdır. Crockford alfabesi, rakamlarla karışmayı önlemek ve karakter dizisini büyük/küçük harfe duyarsız ve URL güvenli tutmak için I, L, O ve U harflerini kasıtlı olarak dışlar. ULID'ler, rastgele UUIDv4 ile yaşanan pratik bir sorunu çözmek için ortaya çıktı: rastgele tanımlayıcılar bir veritabanı indeksine dağılarak ekleme performansını düşürürken, zaman önekli bir ULID her seferinde indeksin sonuna yakın bir yere düşer.
ULID mi UUID mi — hangisini kullanmalıyım?
Hem benzersiz hem de oluşturulma zamanına göre doğal olarak sıralanabilir tanımlayıcılar istediğinizde bir ULID kullanın; özellikle gömülü zaman damgası olmayan, opak ve tamamen rastgele bir tanımlayıcıya ihtiyacınız olduğunda klasik bir UUIDv4 kullanın. Temel farklar: bir ULID, bir UUID'nin tireli 36 karakterine karşılık 26 karakterlik Base32'dir; yani ULID'ler daha kısadır ve kaçışlama olmadan URL güvenlidir. Bir ULID oluşturulma zamanını kodlar, bir UUIDv4 ise kodlamaz — sıralama ve hata ayıklama için kullanışlıdır, ama bir kaydın ne zaman oluşturulduğunu açığa çıkarmak istemiyorsanız dikkate değerdir. Her ikisi de 128 bittir ve her ikisi de koordinasyon gerektirmez; bu yüzden çakışma riski ikisinde de yok denecek kadar azdır. Yığınınız UUID'lerde standartlaşmışsa ama yine de zamana göre sıralama istiyorsanız, UUIDv7 (UUID Üretici'den) UUID biçiminde benzer bir zaman önekli tasarım sunar — ya da burada ULID'ler üretip Dönüştür sekmesiyle UUID'ye çevirebilirsiniz.
ULID'ler sıralanabilir mi?
Evet — tanımlayıcı özellikleri budur. 48 bitlik milisaniye zaman damgası ilk 10 karakteri kapladığından ve Crockford Base32 sözlüksel sırayı koruduğundan, ULID'leri sıradan karakter dizileri olarak sıralamak onları oluşturulma zamanına göre sıralar. Bu, karakter dizilerini bayt bayt karşılaştıran her sistemde geçerlidir: bir veritabanı ORDER BY'ı, sıralı bir küme, bir dosya listesi ya da basit bir dizi sıralaması. Pratik kazanç veritabanı performansıdır: zamana göre sıralı anahtarlar, UUIDv4 gibi rastgele dağılmak yerine bir B-tree indeksinin sonuna eklenir; bu da eklemeleri hızlı ve indeksi kompakt tutar. Tek bir milisaniye içinde düz ULID'lerin sırası rastgeledir; bu yüzden aynı milisaniyede üretilen kimlikler için bile kesin sıralama gerekiyorsa, rastgeleliği artırarak her değeri bir öncekinden büyük tutan monoton modu kullanın.
Bir ULID'nin zaman damgasını nasıl çözerim?
ULID'yi Çöz sekmesine yapıştırın; araç gömülü oluşturulma zamanını anında, tamamen tarayıcınızda çıkarır. İlk 10 karakteri okur, bunları Crockford Base32'den Unix epoch'undan bu yana milisaniye cinsinden 48 bitlik bir tam sayıya geri çevirir ve o anı UTC ile yerel saatinizde, ham Unix milisaniye değeriyle birlikte gösterir. Örneğin, kanonik ULID 01ARYZ6S41TSV4RRFFQ69G5FAV, 1469918176385 ms'ye, yani 2016-07-30T22:36:16.385Z'ye çözülür. Kalan 16 karakter 80 bitlik rastgeleliktir ve çözülecek bir anlam taşımaz. Zaman damgasını bu şekilde okumak; hata ayıklamak, bir kaydın ne zaman oluşturulduğunu denetlemek ya da bir tanımlayıcının gerçekten bir ULID olup olmadığını teyit etmek için kullanışlıdır — hiçbir veritabanı sorgusu gerekmez.
Monoton ULID nedir?
Monoton bir ULID, aynı milisaniye içinde üretilen tanımlayıcılar için bile kesin sıralamayı garanti eder. Bir milisaniyede oluşturulan düz ULID'ler aynı 10 karakterlik zaman önekini paylaşır, ama 80 bitlik rastgele kuyrukları bağımsızdır; bu yüzden göreli sıraları tanımlı değildir. Monoton üretim bunu çözer: belirli bir milisaniyedeki ilk ULID yeni rastgelelik alır; o milisaniyedeki sonraki her ULID, önceki rastgeleliğin bir artırılmasıyla üretilir. Sonuç, her değerin bir öncekinden kesinlikle büyük olduğu bir dizidir; böylece sıkı bir döngüde eklenen bir toplu iş kusursuz şekilde sıralı kalır. Bu, milisaniye saati ilerlemeden çok sayıda satırın oluşturulabildiği ve yine de kararlı, artan bir anahtara ihtiyaç duyduğunuz yüksek hacimli sistemler için — olay logları, mesaj kuyrukları, toplu içe aktarmalar — önemlidir.
Bu ULID üretici güvenli ve gizli mi?
Her iki açıdan da evet. Her ULID'deki rastgelelik, tarayıcının kriptografik olarak güvenli rastgele sayı üreticisi olan crypto.getRandomValues'tan gelir — asla Math.random'dan değil — bu yüzden 80 rastgele bit öngörülemezdir ve iki ULID'nin aynı milisaniye içinde çakışma olasılığı yok denecek kadar azdır. Aynı derecede önemlisi, her şey yerel olarak çalışır: ULID'ler tamamen cihazınızda üretilir, çözülür ve dönüştürülür. Hiçbir şey yüklenmez, günlüğe kaydedilmez veya saklanmaz; bunu Geliştirici Araçları'nı açıp Üret'e tıkladığınızda Ağ sekmesinin sessiz kaldığını izleyerek teyit edebilirsiniz. Bu gizlilik özelliği, tanımlayıcıları, ilkesel olarak verdiği her değerin bir kopyasını saklayabilecek bir sunucu yerine tarayıcıda oluşturmanın bütün nedenidir.
ULID ile UUIDv7 arasındaki fark nedir?
Hem ULID hem de UUIDv7, milisaniye zaman damgasını başa koyan, zamana göre sıralı 128 bitlik tanımlayıcılardır; bu yüzden ikisi de oluşturulma zamanına göre sıralanır ve verimli indekslenir — temel fikir aynıdır. Fark biçim ve kodlamadadır. Bir ULID, tiresiz Crockford Base32 ile 26 karakter olarak sunulur; bu daha kısa ve URL güvenlidir. UUIDv7 ise standart 36 karakterlik tireli onaltılık UUID düzeninde sunulur ve sürüm ile varyant bitlerini sabit konumlarda taşır; bu yüzden herhangi bir UUID kütüphanesinin kabul ettiği, tam geçerli bir RFC 9562 UUID'sidir. UUID ekosisteminde kalmanız gerektiğinde (bir UUID veritabanı sütunu, UUID türünde bir API) UUIDv7'yi seçin; en kısa sıralanabilir karakter dizisini istediğinizde ULID'yi seçin. İkisi de 128 bit olduğundan, burada bir ULID üretip Dönüştür sekmesiyle UUID biçimine çevirebilir ya da UUID Üretici ile bir UUIDv7 üretebilirsiniz.

Bcrypt Karma Oluşturucu ve Doğrulayıcı

Güvenlik Araçları

bcrypt şifre karmalarını çevrimiçi oluşturun ve doğrulayın — ayarlanabilir maliyet, $2b$/$2a$/$2y$ önekleri. %100 tarayıcınızda; şifreniz asla yüklenmez.

JWT Çözücü

Güvenlik Araçları

Ücretsiz JWT çözücümüzle JWT token'larını online çözün. header, payload, signature, son kullanma, algoritma ve claim'leri anında inceleyin. %100 tarayıcıda çalışır — token'ınız cihazınızdan ayrılmaz. Kayıt yok, izleme yok.

JWT Oluşturucu ve Kodlayıcı

Güvenlik Araçları

Ücretsiz online JWT oluşturucu ve kodlayıcı. header ve payload'ı oluşturun, HS256, RS256 ya da ES256 ile anında imzalayın. %100 tarayıcıda çalışır — gizli anahtarınız ve özel anahtarınız cihazınızdan ayrılmaz.

Ücretsiz JWT Gizli Anahtar Oluşturucu — HS256/384/512

Güvenlik Araçları

HS256/384/512 için güçlü, RFC uyumlu bir JWT gizli anahtarı üretin. %100 tarayıcınızda; base64url, base64 veya hex; .env için tek tıkla kopyalayın.

MD5 Özet Üretici ve Dosya Sağlama Aracı

Güvenlik Araçları

MD5, SHA-256, SHA-1 ve SHA-512 özetlerini online ücretsiz üretin. Tarayıcınızda metin veya dosya özeti alın, sağlama değerlerini doğrulayın ve sonuçları kopyalayın. Kayıt gerekmez.

Rastgele Şifre Üretici — Özelleştirilebilir ve Güvenli

Güvenlik Araçları

Anında güçlü rastgele şifreler üretin — ücretsiz, %100 tarayıcınızda. Uzunluk ve karakterleri özelleştirin, entropi analiziyle 50'ye kadar toplu üretim.