4 Dakika

UUID Ne Kadar Unique?

UUID Nedir?

UUID, benzersiz tanımlayıcıların oluşturulmasında kullanılan bir 128 bitlik dize (string) formatıdır. UUID, genellikle bilgisayar sistemlerinde, ağ cihazlarında, veritabanlarında, programlama dillerinde, web uygulamalarında ve diğer birçok yerde benzersiz tanımlayıcılar olarak kullanılır.

UUID Türleri

Version 1 UUID

Bu UUID türü, zaman ve ağ adresi kullanarak oluşturulur. Bu nedenle, bu tür UUID'ler, biraz tahmin edilebilir ve gizlilik sorunlarına neden olabilir.

use Ramsey\Uuid\Uuid;
// Version 1 UUID
$uuid = Uuid::uuid1();
echo $uuid;
// f1494f6e-ce7b-11ed-afa1-0242ac120002

Version 2 UUID

Bu UUID türü, zaman, ağ adresi ve POSIX kullanıcı kimliği gibi ek özellikler kullanarak oluşturulur. Bu tür UUID'ler, yalnızca belirli sistemlerde kullanılır.

use Ramsey\Uuid\Uuid;
// Version 2 UUID
$uuid = Uuid::uuid2(Uuid::DCE_DOMAIN_PERSON);
// 000001f5-ce7e-21ed-bf00-e6edf2fae6e9

Version 3 UUID

Bu UUID türü, belirli bir isim ve ad alanı kullanarak oluşturulur. Bu tür UUID'ler, belirli bir ad alanında bir ismin benzersiz bir tanımlayıcısını oluşturmak için kullanılır.

use Ramsey\Uuid\Uuid;
// Version 3 UUID
$uuid = Uuid::uuid3(Uuid::NAMESPACE_URL, 'https://afat.me');
// 1cbdbdfb-221a-3abc-9fc1-3a94bbdfd2dc

Version 4 UUID

Bu UUID türü, tamamen rastgele olarak oluşturulur. Bu nedenle, bu tür UUID'lerin benzersizliği garantidir. Bu tür, genellikle en çok tercih edilen UUID türüdür.

use Ramsey\Uuid\Uuid;
// Version 4 UUID
$uuid = Uuid::uuid4();
// 83364d34-e3f9-4701-b9ba-4bd682f7bcf5

Version 5 UUID

Bu UUID türü, belirli bir isim ve ad alanı kullanarak oluşturulur. Bu tür UUID'ler, SHA-1 algoritmasını kullanarak oluşturulur.

use Ramsey\Uuid\Uuid;
// Version 5 UUID
$uuid = $uuid = Uuid::uuid5(Uuid::NAMESPACE_URL, 'https://afat.me');;
// 7683ee8f-5ea2-5185-aeb0-e780ada0c6ba

UUID'lerin Avantajları ve Dezavantajları

UUID'nin en büyük avantajı, benzersiz tanımlayıcılar oluşturabilmesidir. Bu, verilerin doğru şekilde yönetilmesini sağlar. UUID'ler, çakışma riski taşıyan tanımlayıcılar yerine benzersiz tanımlayıcılar sağladığından, veritabanı işlemleri ve diğer işlemler daha güvenli hale gelir.

UUID'nin en büyük dezavantajı, daha uzun ve daha zor okunabilen benzersiz tanımlayıcılar oluşturmasıdır. Ayrıca, bazı UUID türleri, özellikle de Version 1 ve Version 2, tahmin edilebilir olabilir ve gizlilik sorunlarına neden olabilir.

UUID Ne Kadar Unique?

UUID'ler, 128 bit uzunluğunda rastgele oluşturulmuş sayı dizileridir. Bu nedenle, her bir UUID benzersiz bir tanımlayıcı olarak hizmet eder. UUID'lerin benzersizliği, birbirinden büyük olasılıkla farklı olacak şekilde rastgele oluşturulmuş olmalarından kaynaklanmaktadır.

Ancak, pratikte, iki UUID'nin aynı olma ihtimali sıfır değildir, sadece çok düşüktür. UUID'nin benzersizliği, 128 bit uzunluğundan kaynaklanır ve 2^128 yaklaşık olarak 3.4 x 10^38 buda 3.400.000.000.000.000.000.000.000.000.000.000.000.000 (üç desilyon dört yüz undesilyon) farklı UUID oluşturma olasılığına sahip olması nedeniyle teorik olarak benzersizdir. Bu sayı, insanların anlayabileceği bir sayı değildir ve gerçek dünyada bu sayıya yakın bir sayıda UUID oluşturulması neredeyse imkansızdır.

Bununla birlikte, bilgisayarların ve rastgele sayı üreteçlerinin işleyiş mekanizmalarından kaynaklanan sınırlamalar nedeniyle, iki UUID'nin aynı olma olasılığı çok düşüktür. Bu nedenle, UUID'lerin benzersizliği her zaman garanti edilmez, sadece benzersiz olarak kabul edilir.