UUID डिकोडिंग क्या है?
UUID डिकोडिंग UUID का विश्लेषण करके निम्नलिखित जानकारी निकाली जाती है:
- Version: कौन सा UUID संस्करण (1-8) है — पोजिशन 48-51 में 4 बिट के आधार पर
- Variant: कौन सा UUID वैरियंट है (आम तौर पर RFC 4122) — बिट्स 64-65 के आधार पर
- Components: संस्करण के आधार पर टाइमस्टैम्प, node ID, या अन्य डेटा निकालना
- जनरेट होने का समय: टाइम-आधारित UUIDs (v1, v6, v7) के लिए
Example: 123e4567-e89b-12d3-a456-426614174000 वह एक Version 1 UUID है जिसमें टाइमस्टैम्प है 2228-06-25T20:01:28.545Z जब JavaScript मिलिसेकंड प्रिसिजन पर दिखाया जाए।
UUID संरचना का अवलोकन
| Format | Description |
|---|---|
| 8-4-4-4-12 | हाइफ़न के साथ समूहित 32 हेक्स अंक |
| वर्शन बिट्स | बिट्स 48-51 (13वाँ अंक) |
| वैरिएंट बिट्स | बिट्स 64-65 (17वाँ अंक) |
वर्शन नंबर तीसरे समूह के पहले हेक्स अंक के रूप में दिखाई देता है (उदाहरण के लिए, 123e4567-e89b-12d3-a456-426614174000 वर्शन 1 के लिए)।
UUID संस्करण के अनुसार डिकोडिंग
| Version | क्या डिकोड किया जा सकता है |
|---|---|
| UUID v1 |
|
| UUID v3/v5 |
|
| UUID v4 |
|
| UUID v6 |
|
| UUID v7 |
|
UUIDs से टाइमस्टैम्प निकालना
| UUID प्रकार | टाइम निकालने की विधि | Epoch |
|---|---|---|
| UUID v1 | बिट्स 0-31, 32-47, और 48-59 को मिलाएँ, टाइमस्टैम्प कंपोनेंट्स का पुनःक्रमण करें | 15 अक्टूबर, 1582 |
| UUID v6 | बिट्स 0-47 को बिट्स 52-63 के साथ मिलाएँ; बिट्स 48-51 वर्शन हैं और बाहर रखे जाते हैं | 15 अक्टूबर, 1582 |
| UUID v7 | बिट्स 0-47 (Unix मिलिसेकंड) निकालें | 1 जनवरी, 1970 |
UUID वैलिडेशन नियम
- फॉर्मेट चेक: हाइफ़न्स के साथ 8-4-4-4-12 हेक्स डिजिट
- वर्शन चेक: 13वाँ कैरेक्टर 1-8 होना चाहिए
- वैरिएंट चेक: 17वाँ कैरेक्टर RFC 4122 के लिए 8, 9, A, या B होना चाहिए
बेसिक UUID वैलिडेशन के लिए नियमित अभिव्यक्ति:
^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$UUID v7 टाइमस्टैम्प उदाहरण
017f22e2-79b0-7cc3-98c4-dc0c0c07398f RFC 9562 UUIDv7 टेस्ट वेक्टर है। इसके पहले 48 बिट्स Unix मिलिसेकंड हैं, जो डिकोड होकर 2022-02-22T19:22:22.000Z, 1645557742000 मिलीसेकंड, या 1645557742 seconds.
नया जनरेट करें UUID v7, या जारी रखें Unix टाइमस्टैम्प कनवर्टर। ये लिंक उस UUID को शामिल नहीं करते जो आपने दर्ज किया है।
व्यावहारिक अनुप्रयोग
- फोरेंसिक विश्लेषण: यह निर्धारित करना कि IDs कब बनाए गए थे
- Debugging: ID टाइमस्टैम्प के माध्यम से सिस्टम व्यवहार का ट्रेसिंग
- Auditing: कालानुक्रमिक अखंडता का सत्यापन
- फॉर्मेट चेक्स: गलत IDs का पता लगाना; एक वैध UUID प्रामाणिकता साबित नहीं करता
- डेटा पुनर्प्राप्ति: समय संबंधी संबंधों का पुनर्निर्माण
- सिस्टम माइग्रेशन: लेगसी UUID इम्प्लीमेंटेशन के विवरण को समझना
MAC पता निकालना (v1/v6)
UUID v1 और v6 के लिए, यदि node ID जनरेशन के दौरान रैन्डमाइज़ नहीं किया गया था तो आप अक्सर node identifier (MAC पता) निकाल सकते हैं:
- UUID से अंतिम 12 हेक्स अंक (48 बिट) निकालें
- XX:XX:XX:XX:XX:XX के रूप में कॉलन्स के साथ फॉर्मेट करें
- मल्टीकास्ट बिट की जाँच करके तय करें कि MAC पता असली है या रैन्डम
यदि पहले बाइट में बिट 0x01 सेट है, तो यह संभवतः एक रैन्डमाइज़्ड node ID है न कि वास्तविक MAC पता।
अक्सर पूछे जाने वाले प्रश्न
क्या मैं ठीक-ठीक पता कर सकता हूँ कि UUID v4 कब बनाया गया था?
नहीं। UUID v4 पूरी तरह से रैन्डम है और इसमें कोई टाइमस्टैम्प जानकारी नहीं होती। UUID v4 के मान से निर्माण का समय निर्धारित नहीं किया जा सकता।
टाइम-आधारित UUIDs में टाइमस्टैम्प कितने सटीक होते हैं?
UUID v1/v6 टाइमस्टैम्प में 100-नैनोसेकंड प्रिसिजन होती है। UUID v7 में मिलिसेकंड प्रिसिजन होती है। हालाँकि, वास्तविक सिस्टम क्लॉक की सटीकता अलग हो सकती है।
क्या मैं UUID संस्करणों के बीच बदल सकता/सकती हूँ?
नहीं, आप सीधे संस्करणों के बीच कन्वर्ट नहीं कर सकते जबकि वही पहचानकर्ता मान बनाए रखें। विभिन्न संस्करणों की संरचनाएँ मूलतः अलग होती हैं।
क्या मैं उस कंप्यूटर की पहचान कर सकता/सकती हूँ जिसने UUID v1 जनरेट किया?
यदि node ID को रैन्डमाइज़ नहीं किया गया था, तो UUID v1 में जनरेट करने वाली सिस्टम का MAC पता शामिल हो सकता है। हालाँकि, गोपनीयता के लिए कई आधुनिक इम्प्लीमेंटेशन इसे रैन्डमाइज़ करते हैं।
मैं कैसे बता सकता/सकती हूँ कि एक UUID वैध है?
फ़ॉर्मेट चेक करें (8-4-4-4-12 हेक्स डिजिट), वर्शन डिजिट (13वाँ कैरेक्टर) 1-8 है या नहीं सत्यापित करें, और वैरिएंट बिट्स की पुष्टि करें (RFC 4122 UUIDs के लिए 17वाँ कैरेक्टर 8, 9, A, या B होना चाहिए)।