UUID (GUID) Nedir ve Neden Kullanılmalıdır?

Öncelikle UUID (universally unique identifier) ve GUID (globally unique identifier) arasındaki ifade kargaşasını bir çözelim. GUID, Microsoft sistemlerde UUID’nin uygulanmasında kullandığı bir terimdir. Yani UUID ve GUID farklı şeyler değildir.

UUID hexadecimal 32 karakterden oluşur, 128bit (16bayt) değere sahiptirler, 4. sürümde d1fdf61e-0ab5–433d-9b19-de09425b1e46 gibi 36 karakter çıktıları mevcuttur. Kabaca benzersiz olduğunu varsayabiliriz fakat değildir. Ayrıntılı bilgi için https://towardsdatascience.com/are-uuids-really-unique-57eb80fc2a87 inceleyebilirsiniz. Daha ayrıntılı bilgi için: https://tools.ietf.org/html/rfc4122

Bu noktaya kadar özetlemek gerekirse; int değere sahip IDler yerine tercih edilebilecek yeni nesil ID formatıdır.

Dikkat! Her UUID formatında çıktı sunan kütüphane UUID standartları doğrultusunda hazırlanmamış olabilir. (Örn: Kullandığınız kütüphane Timestamp alıp, rastgele kendine özgü algoritmalar kullanarak karakter üretiyordur, MAC ve CPU Clock Sequence içermiyordur vs. işte bu durumda başınız ağrıyabilir. Bu nedenle UUID standartlarına uygun hazırlanmış, herkes tarafından tercih edilmiş, güvenilir kütüphaneleri tercih etmelisiniz.)

Peki neden kullanmalıyız?

  • Tahmin edilmesi çok zordur bu nedenle Brute Force vb. güvenlik endişelerinden bizi kurtarır.
  • Genellikle benzersiz olmasını garanti etmek için ekstra efor sarfetmemiz gerekmez. (Unique indeks vb. uygulamalar)

Örnek
Mevcut projelerde user/show/1 şeklinde istek kabul ederken user/show/2, user/show/3 … şeklinde yalnızca URI içeriğini değiştirerek basit bir crawler ile site içeriğimiz alınabilirdi fakat user/show/d1fdf61e-0ab5–433d-9b19-de09425b1e46 gibi UUID kullanmamız halinde böyle bir durum söz konusu olamayacaktır.

Originally published at halilsafakkilic.com.

Written by

Software Developer, Web Developer — Ankara, Turkey halilsafakkilic.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store