UUID / GUID உருவாக்கி
v1, v4 அல்லது v5 இல் UUID களை உருவாக்கவும் — மொத்தமாக, வடிவமைக்கப்பட்டு, விருப்பமான prefix/suffix உடன்.
பதிப்பு குறிப்பு
v4 — சீரற்றது
பதிப்பு 4 UUID கள் முழுவதுமாக சீரற்ற (அல்லது போலி-சீரற்ற) bytes இலிருந்து உருவாக்கப்படுகின்றன. 128 bits இல் 122 bits சீரற்றவை; மீதமுள்ள 6 bits பதிப்பையும் (4) variant ஐயும் என்கோட் செய்கின்றன. அவை கட்டமைக்கப்பட்ட தகவல் எதையும் கொண்டிருக்காததால், v4 UUID கள் எளிமையான தேர்வாகும்: அவற்றுக்கு பகிரப்பட்ட நிலை, network clock அல்லது namespace ஒருங்கிணைப்பு தேவையில்லை. நகல் ஒன்றை உருவாக்கும் நிகழ்தகவு மிகக் குறைவு. தனித்துவம் தேவையான ஆனால் நேர வரிசைப்படுத்தல் தேவையில்லாத database primary keys, session tokens மற்றும் எந்தச் சூழலுக்கும் v4 ஐ இயல்பாகப் பயன்படுத்தவும்.
Wikipedia — UUID Version 4 (random)
v1 — நேரம் அடிப்படையிலானது
பதிப்பு 1 UUID கள் ஒரு 60-bit timestamp (15 அக்டோபர் 1582, கிரிகோரியன் நாட்காட்டி சீர்திருத்த தேதியிலிருந்து 100-நானோ வினாடி இடைவெளிகள்), ஒரு 14-bit clock sequence மற்றும் ஒரு 48-bit node அடையாளங்காட்டி (வரலாற்று ரீதியாக உருவாக்கும் இயந்திரத்தின் MAC முகவரி) ஆகியவற்றை உள்ளடக்குகின்றன. timestamp மிக முக்கியமான கூறு என்பதால், லெக்சிகோகிராஃபிக்கல் முறையில் ஒப்பிடும்போது v1 UUID கள் காலவரிசைப்படி வரிசைப்படுத்தப்படுகின்றன — clustered database indexes க்கு பயனுள்ள பண்பு. பரிமாற்றம் தனியுரிமை: ஒரு v1 UUID இயந்திரத்தின் MAC முகவரியையும் சரியான உருவாக்க நேரத்தையும் கசியவிடுகிறது. அந்த வெளிப்பாட்டைத் தவிர்க்க நவீன செயலாக்கங்கள் சீரற்ற node ஐ மாற்றாகப் பயன்படுத்துகின்றன.
Wikipedia — UUID Version 1 (time-based)
v5 — Namespace + Name (SHA-1)
பதிப்பு 5 UUID கள் தீர்மானகரமானவை: அதே namespace UUID மற்றும் அதே name string கொடுக்கப்பட்டால், வெளியீடு எப்போதும் ஒரே மாதிரியாக இருக்கும். அல்காரிதம் namespace bytes மற்றும் UTF-8 என்கோட் செய்யப்பட்ட name ஐ இணைத்து, அவற்றை SHA-1 உடன் hash செய்து, பின்னர் 160-bit digest ஐ 128 bits ஆக மடிக்கிறது (பதிப்பு bits ஐ 5 ஆகவும் RFC 4122 variant ஐயும் அமைக்கிறது). இது நிலையான, மீளுருவாக்கக்கூடிய அடையாளங்காட்டிகளை உருவாக்குவதற்கு v5 ஐ சிறந்ததாக்குகிறது — எடுத்துக்காட்டாக, ஒரு URL ஐ ஒருபோதும் மாறாத UUID க்கு வரைபடமாக்குதல், அல்லது ஒரு legacy string key ஐ lookup table இல்லாமல் UUID ஆக மாற்றுதல். v3 அதற்குப் பதிலாக MD5 ஐப் பயன்படுத்துகிறது; SHA-1 குறைவான collisions ஐ உருவாக்குவதால் v5 விரும்பப்படுகிறது.