UUID जनरेटर: विविध अनुप्रयोगांसाठी अद्वितीय ओळखपत्र
विविध अनुप्रयोगांसाठी सार्वत्रिक अद्वितीय ओळखपत्र (UUID) तयार करा. वितरित प्रणाली, डेटाबेस आणि अधिकमध्ये वापरण्यासाठी आवृत्ती 1 (वेळ आधारित) आणि आवृत्ती 4 (यादृच्छिक) UUID दोन्ही तयार करा.
UUID जनरेटर
उत्पन्न UUID
दस्तऐवजीकरण
UUID जनरेटर
परिचय
एक सार्वभौम अद्वितीय पहचानकर्ता (UUID) हा 128-बिट संख्या आहे जो संगणक प्रणालींमध्ये माहितीची ओळख करण्यासाठी वापरला जातो. UUIDs ओपन सॉफ्टवेअर फाउंडेशन (OSF) द्वारे वितरित संगणन वातावरण (DCE) चा एक भाग म्हणून मानकीकरण केले गेले आहेत. हे ओळखपत्र जागा आणि काळ दोन्हीमध्ये अद्वितीय असण्याच्या उद्देशाने तयार केले गेले आहेत, ज्यामुळे ते वितरित प्रणालींमध्ये आणि इतर ठिकाणी विविध अनुप्रयोगांसाठी आदर्श बनतात.
हा UUID जनरेटर साधन तुम्हाला आवृत्ती 1 (वेळ आधारित) आणि आवृत्ती 4 (यादृच्छिक) UUID तयार करण्याची परवानगी देतो. हे ओळखपत्र विविध परिस्थितींमध्ये अद्वितीय ओळख आवश्यक असलेल्या ठिकाणी उपयुक्त आहेत, जसे की डेटाबेस की, वितरित प्रणाली आणि नेटवर्क प्रोटोकॉल.
UUID कसे कार्य करते
UUID संरचना
UUID सहसा 32 हेक्साडेसिमल अंकांमध्ये दर्शविला जातो, जो पाच गटांमध्ये हायफनने विभाजित केला जातो, 8-4-4-4-12 च्या स्वरूपात एकूण 36 वर्ण (32 अल्फान्यूमेरिक वर्ण आणि 4 हायफन) असतात. उदाहरणार्थ:
1550e8400-e29b-41d4-a716-446655440000
2
UUID च्या 128 बिट्स विशिष्ट क्षेत्रांमध्ये विभागलेले आहेत, प्रत्येक UUID आवृत्तीच्या आधारावर वेगवेगळ्या माहितीचा वाहक आहे:
- 32 बिट्स time_low क्षेत्रासाठी
- 16 बिट्स time_mid क्षेत्रासाठी
- 16 बिट्स time_hi_and_version क्षेत्रासाठी
- 8 बिट्स clock_seq_hi_and_reserved क्षेत्रासाठी
- 8 बिट्स clock_seq_low क्षेत्रासाठी
- 48 बिट्स node क्षेत्रासाठी
UUID संरचनेचे चित्रण करणारा एक आरेख:
UUID आवृत्त्या
UUIDs च्या अनेक आवृत्त्या आहेत, प्रत्येकाची स्वतःची जनरेट करण्याची पद्धत आहे:
- आवृत्ती 1 (वेळ आधारित): वर्तमान टाइमस्टॅम्प आणि संगणकाचा MAC पत्ता वापरते.
- आवृत्ती 2 (DCE सुरक्षा): आवृत्ती 1 प्रमाणे, परंतु स्थानिक डोमेन ओळखकर्ता समाविष्ट करते.
- आवृत्ती 3 (नाव आधारित, MD5): एक namespace ओळखकर्ता आणि नाव हॅश करून तयार केले जाते.
- आवृत्ती 4 (यादृच्छिक): एक यादृच्छिक किंवा pseudo-random संख्या वापरून तयार केले जाते.
- आवृत्ती 5 (नाव आधारित, SHA-1): आवृत्ती 3 प्रमाणे, परंतु SHA-1 हॅशिंग वापरते.
हे साधन आवृत्ती 1 आणि आवृत्ती 4 UUIDs तयार करण्यावर लक्ष केंद्रित करते.
सूत्र
आवृत्ती 1 UUID जनरेशन
आवृत्ती 1 UUIDs खालील घटकांचा वापर करून तयार केले जातात:
- टाइमस्टॅम्प: 100-नॅनोसेकंदांमध्ये ऑक्टोबर 15, 1582 (ख्रिश्चन कॅलेंडरमध्ये ग्रेगोरियन सुधारणा झाल्याची तारीख) पासूनच्या कालावधीचे प्रतिनिधित्व करणारा 60-बिट मूल्य.
- क्लॉक अनुक्रम: 14-बिट मूल्य जे क्लॉक मागे सेट केल्यास डुप्लिकेट टाळण्यासाठी वापरले जाते.
- नोड: 48-बिट मूल्य, सहसा संगणकाच्या MAC पत्त्यातून व्युत्पन्न केले जाते.
आवृत्ती 1 UUID तयार करण्याचे सूत्र असे व्यक्त केले जाऊ शकते:
1UUID = (timestamp * 2^64) + (clock_sequence * 2^48) + node
2
आवृत्ती 4 UUID जनरेशन
आवृत्ती 4 UUIDs क्रिप्टोग्राफिकदृष्ट्या मजबूत यादृच्छिक संख्या जनरेटर वापरून तयार केले जातात. सूत्र फक्त:
1UUID = random_128_bit_number
2
विशिष्ट बिट्स आवृत्ती (4) आणि प्रकार दर्शविण्यासाठी सेट केले जातात.
उपयोग प्रकरणे
UUIDs संगणक विज्ञान आणि सॉफ्टवेअर अभियांत्रणाच्या विविध क्षेत्रांमध्ये अनेक अनुप्रयोग आहेत:
-
डेटाबेस की: UUIDs सहसा डेटाबेसमध्ये प्राथमिक की म्हणून वापरले जातात, विशेषत: वितरित प्रणालींमध्ये जिथे अनेक नोड एकाच वेळी रेकॉर्ड तयार करू शकतात.
-
वितरित प्रणाली: मोठ्या प्रमाणावर वितरित प्रणालींमध्ये, UUIDs संसाधन, व्यवहार किंवा इव्हेंट्सची अद्वितीय ओळख करण्यात मदत करतात.
-
सामग्री पत्ता: UUIDs सामग्रीमध्ये अद्वितीय ओळखपत्रे तयार करण्यासाठी वापरले जाऊ शकतात.
-
सत्र व्यवस्थापन: वेब अनुप्रयोग बहुधा UUIDs वापरतात जेणेकरून प्रत्येक सत्राला अद्वितीय ओळखपत्र मिळेल.
-
IoT डिव्हाइस ओळख: इंटरनेट ऑफ थिंग्ज (IoT) अनुप्रयोगांमध्ये, UUIDs नेटवर्कमधील व्यक्तीगत डिव्हाइसची अद्वितीय ओळख करण्यासाठी वापरले जाऊ शकतात.
पर्याय
जरी UUIDs व्यापकपणे वापरल्या जातात, तरी अद्वितीय ओळखपत्रे तयार करण्यासाठी पर्यायी दृष्टिकोन आहेत:
-
ऑटो-इन्क्रिमेंटिंग आयडी: एक साधा आणि एकल डेटाबेस प्रणालींमध्ये सामान्यतः वापरला जातो, परंतु वितरित वातावरणासाठी योग्य नाही.
-
टाइमस्टॅम्प-आधारित आयडी: वेळेच्या क्रमाने डेटा साठी उपयुक्त असू शकतात, परंतु उच्च-समांतर परिस्थितींमध्ये टकरावाच्या समस्यांना सामोरे जावे लागते.
-
स्नोफ्लेक आयडी: ट्विटरद्वारे विकसित, हे आयडी टाइमस्टॅम्प आणि कार्यकर्ता क्रमांक एकत्र करून वितरित प्रणालींमध्ये अद्वितीय आयडी तयार करतात.
-
ULID (सार्वभौम अद्वितीय लेक्सिकोग्राफिकली क्रमबद्ध ओळखपत्र): UUIDs पेक्षा अधिक मानव-मैत्रीपूर्ण आणि क्रमबद्ध असण्याचा उद्देश असलेला एक अलीकडील पर्याय.
इतिहास
UUIDs चा संकल्पना प्रथम अपोलो नेटवर्क संगणक प्रणालीमध्ये सादर करण्यात आली आणि नंतर 1990 च्या दशकात ओपन सॉफ्टवेअर फाउंडेशन (OSF) द्वारे मानकीकरण करण्यात आली. प्रारंभिक विशिष्टता 1997 मध्ये ISO/IEC 11578:1996 म्हणून प्रकाशित झाली आणि 2005 मध्ये ISO/IEC 9834-8:2005 चा भाग म्हणून पुनरावलोकन करण्यात आली.
UUID इतिहासातील मुख्य घटनाक्रम:
- 1980 च्या दशकात: अपोलो संगणक त्यांच्या नेटवर्क संगणक प्रणालीसाठी UUID संकल्पना विकसित करतो.
- 1997: पहिली UUID विशिष्टता ISO/IEC 11578:1996 म्हणून प्रकाशित केली जाते.
- 2005: UUID विशिष्टता सुधारित केली जाते आणि ISO/IEC 9834-8:2005 चा भाग म्हणून प्रकाशित केली जाते.
- 2009: RFC 4122 UUID स्वरूप आणि आज वापरल्या जाणार्या जनरेशन अल्गोरिदमची व्याख्या करते.
काळानुसार, UUIDs वितरित प्रणालींमध्ये आणि डेटाबेस डिझाइनमध्ये एक आवश्यक साधन बनले आहेत, विविध प्रोग्रामिंग भाषांमध्ये आणि प्लॅटफॉर्मवर विविध कार्यान्वयन आणि अनुकूलनांसह.
कोड उदाहरणे
येथे विविध प्रोग्रामिंग भाषांमध्ये UUIDs तयार करण्याचे उदाहरणे आहेत:
1import uuid
2
3## आवृत्ती 4 (यादृच्छिक) UUID तयार करा
4random_uuid = uuid.uuid4()
5print(f"आवृत्ती 4 UUID: {random_uuid}")
6
7## आवृत्ती 1 (वेळ आधारित) UUID तयार करा
8time_based_uuid = uuid.uuid1()
9print(f"आवृत्ती 1 UUID: {time_based_uuid}")
10
1const { v1: uuidv1, v4: uuidv4 } = require('uuid');
2
3// आवृत्ती 4 (यादृच्छिक) UUID तयार करा
4const randomUuid = uuidv4();
5console.log(`आवृत्ती 4 UUID: ${randomUuid}`);
6
7// आवृत्ती 1 (वेळ आधारित) UUID तयार करा
8const timeBasedUuid = uuidv1();
9console.log(`आवृत्ती 1 UUID: ${timeBasedUuid}`);
10
1import java.util.UUID;
2
3public class UuidGenerator {
4 public static void main(String[] args) {
5 // आवृत्ती 4 (यादृच्छिक) UUID तयार करा
6 UUID randomUuid = UUID.randomUUID();
7 System.out.println("आवृत्ती 4 UUID: " + randomUuid);
8
9 // आवृत्ती 1 (वेळ आधारित) UUID तयार करा
10 UUID timeBasedUuid = UUID.fromString(new com.eaio.uuid.UUID().toString());
11 System.out.println("आवृत्ती 1 UUID: " + timeBasedUuid);
12 }
13}
14
1require 'securerandom'
2
3## आवृत्ती 4 (यादृच्छिक) UUID तयार करा
4random_uuid = SecureRandom.uuid
5puts "आवृत्ती 4 UUID: #{random_uuid}"
6
7## रूबीमध्ये आवृत्ती 1 UUIDs साठी अंतर्निहित पद्धत नाही
8## तुम्हाला 'uuidtools' सारख्या जेमचा वापर करावा लागेल
9
1<?php
2// आवृत्ती 4 (यादृच्छिक) UUID तयार करा
3$randomUuid = sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
4 mt_rand(0, 0xffff), mt_rand(0, 0xffff),
5 mt_rand(0, 0xffff),
6 mt_rand(0, 0x0fff) | 0x4000,
7 mt_rand(0, 0x3fff) | 0x8000,
8 mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
9);
10echo "आवृत्ती 4 UUID: " . $randomUuid . "\n";
11
12// PHP मध्ये आवृत्ती 1 UUIDs साठी अंतर्निहित पद्धत नाही
13// तुम्हाला 'ramsey/uuid' सारख्या लायब्ररीचा वापर करावा लागेल
14?>
15
संदर्भ
- Leach, P., Mealling, M., & Salz, R. (2005). A Universally Unique IDentifier (UUID) URN Namespace. RFC 4122. https://tools.ietf.org/html/rfc4122
- आंतरराष्ट्रीय मानकीकरण संघटना. (2005). माहिती तंत्रज्ञान – ओपन सिस्टम इंटरकनेक्शन – OSI नोंदणी प्राधिकरणांच्या कार्यपद्धती: सार्वभौम अद्वितीय ओळखपत्रे (UUIDs) तयार करणे आणि त्यांचा वापर ASN.1 ऑब्जेक्ट आयडेंटिफायर घटक म्हणून. ISO/IEC 9834-8:2005. https://www.iso.org/standard/62795.html
- सार्वभौम अद्वितीय ओळखकर्ता. (2023). विकिपीडिया मध्ये. https://en.wikipedia.org/wiki/Universally_unique_identifier
- स्नोफ्लेक आयडी. (2023). विकिपीडिया मध्ये. https://en.wikipedia.org/wiki/Snowflake_ID
- ULID स्पेस. (n.d.). GitHub. https://github.com/ulid/spec
प्रतिसाद
या साधनाबद्दल प्रतिसाद देण्यासाठी प्रतिसाद टॉस्टवर क्लिक करा
संबंधित साधने
तुमच्या कार्यप्रवाहासाठी उपयुक्त असलेल्या अधिक साधनांचा शोध घ्या