tomai
लॉग इन

UUID समझिए: v1 बनाम v4 बनाम v7 और हर एक कब इस्तेमाल करें

UUID एक 128-bit label है जो पाँच groups में 32 hex digits — 8, 4, 4, 4 और 12 characters — के रूप में लिखा जाता है, और इसे इसलिए बनाया गया है ताकि कोई भी कहीं भी बिना central authority से पूछे एक बना सके। ये rows, files, sessions और API keys को ऐसे systems में पहचानते हैं जो कभी आपस में बात नहीं करते।

1. v1: समय और मशीन

Version 1 में timestamp और node identifier दर्ज होता है, जो आमतौर पर network card से लिया जाता है। IDs मोटे तौर पर बनाने के समय के क्रम में sort होती हैं, जो databases को बहुत पसंद है, लेकिन वे उजागर कर देती हैं कि कब और कहाँ बनाई गई थीं — यही privacy खामी है जिसने ज़्यादातर नए systems को v1 से दूर कर दिया।

2. v4: शुद्ध randomness

Version 4 128 में से 122 bits cryptographic random source से भरता है, और चार bits version बताने के लिए fix होते हैं। Collision की संभावना बेतुके तौर पर छोटी है — एक सदी तक हर second एक billion IDs बनाने पर भी एक duplicate का chance hardware failure rates से कहीं नीचे रहता है — लेकिन randomness database indexes को बिखेर देती है, जिससे विशाल tables में inserts धीमे होते हैं।

3. v7: आधुनिक default

Version 7 सबसे पहले millisecond timestamp रखता है और बाकी randomly भरता है, जिससे machine identity उजागर किए बिना समय-क्रम वाली IDs मिलती हैं। जिन नए projects को sortable, index-friendly identifiers चाहिए, उन्हें v7 लेना चाहिए; यही वह है जो हमारा UUID generator classic v4 के साथ-साथ बनाता है।

4. UUID कब इस्तेमाल न करें

छोटे human-facing codes, invoice numbers और जो कुछ भी users हाथ से type करते हैं, उनके लिए counters या compact encodings बेहतर हैं — UUID लंबे, अनकहे और typo-प्रवण होते हैं। किसी भी UUID को secret की तरह कभी इस्तेमाल न करें: वे unique हैं, unguessable नहीं, क्योंकि v1 और v7 में timestamps होते हैं और v4, random होते हुए भी, अक्सर logs में या URLs में उजागर हो जाता है।