ओलसर परिघ गणक: जलविद्युत व द्रव यांत्रिकी साठी
ट्रॅपेजॉइड्स, आयत/चौरस आणि गोलाकार पाईप्स यासह विविध चॅनेल आकारांसाठी ओलसर परिघाची गणना करा. जलविद्युत अभियांत्रिकी आणि द्रव यांत्रिकी अनुप्रयोगांसाठी अत्यावश्यक.
ULID जनरेटर
जनरेट केलेला ULID:
ULID संरचना
टाइमस्टॅम्प (10 अक्षरे)
यादृच्छिकता (16 अक्षरे)
दस्तऐवजीकरण
ULID जनरेटर
परिचय
ULID (यूनिवर्सल्ली युनिक लेक्सिकोग्राफिकली सॉर्टेबल आयडेंटिफायर) एक अद्वितीय आयडेंटिफायर आहे जो एक टाइमस्टॅम्प आणि यादृच्छिक डेटा एकत्र करून 26-आकृतींचा स्ट्रिंग तयार करतो. ULIDs लेक्सिकोग्राफिकली सॉर्टेबल असण्यास डिझाइन केलेले आहेत, तरीही उच्च स्तरावर अद्वितीयता आणि यादृच्छिकता राखतात.
ULID ची रचना
ULID दोन मुख्य भागांमध्ये विभागलेले आहे:
- टाइमस्टॅम्प (10 अक्षरे): पहिले 10 अक्षरे Unix Epoch (1970-01-01) पासून मिलीसेकंदांमध्ये वेळ दर्शवतात.
- यादृच्छिकता (16 अक्षरे): उर्वरित 16 अक्षरे क्रिप्टोग्राफिकली सुरक्षित यादृच्छिक डेटा वापरून तयार केली जातात.
उत्पन्न झालेला 26-आकृतींचा स्ट्रिंग क्रॉकफोर्डच्या बेस32 वर्णमाला (0-9 आणि A-Z, I, L, O, आणि U वगळता) वापरून कोडित केलेला आहे.
सूत्र
ULID तयार करण्यासाठी खालील चरणांचा वापर केला जातो:
- Unix Epoch पासून मिलीसेकंदांमध्ये 48-बिट टाइमस्टॅम्प तयार करा.
- क्रिप्टोग्राफिकली सुरक्षित यादृच्छिक डेटाचा 80 बिट तयार करा.
- क्रॉकफोर्डच्या बेस32 कोडिंगचा वापर करून एकत्रित 128 बिट कोडित करा.
गणना
ULID जनरेटर खालील चरणांचे पालन करतो:
- मिलीसेकंदांमध्ये वर्तमान टाइमस्टॅम्प मिळवा.
- क्रिप्टोग्राफिकली सुरक्षित यादृच्छिक नंबर जनरेटर वापरून 10 यादृच्छिक बाइट्स (80 बिट) तयार करा.
- टाइमस्टॅम्प आणि यादृच्छिक डेटा एकत्र करून 128-बिट पूर्णांक तयार करा.
- क्रॉकफोर्डच्या बेस32 कोडिंगचा वापर करून 128-बिट पूर्णांक कोडित करा.
उपयोग प्रकरणे
ULIDs विविध परिस्थितींमध्ये उपयुक्त आहेत, जसे की:
- डेटाबेस की: ULIDs डेटाबेस रेकॉर्डसाठी अद्वितीय आयडेंटिफायर म्हणून वापरले जाऊ शकतात, अद्वितीयता आणि सॉर्टेबलिटी सुनिश्चित करणे.
- वितरित प्रणाली: वितरित वातावरणात, ULIDs नोड्स दरम्यान समन्वयाशिवाय तयार केले जाऊ शकतात.
- लॉगिंग आणि ट्रेसिंग: ULIDs लॉग एन्ट्रीज किंवा इव्हेंट्स ट्रेस करण्यासाठी वापरले जाऊ शकतात, एक सॉर्टेबल आणि अद्वितीय आयडेंटिफायर प्रदान करणे.
- URL-मैत्रीपूर्ण आयडेंटिफायर: ULIDs URL-सुरक्षित आहेत आणि वेब अनुप्रयोगांमध्ये URL मध्ये आयडेंटिफायर म्हणून वापरले जाऊ शकतात.
पर्याय
ULIDs बहुपर्यायी असले तरी, विचार करण्यास इतर अद्वितीय आयडेंटिफायर प्रणाली आहेत:
- UUID (यूनिवर्सल्ली युनिक आयडेंटिफायर): 128-बिट आयडेंटिफायर जो टाइमस्टॅम्प घटक समाविष्ट करत नाही.
- KSUID (K-सॉर्टेबल युनिक आयडेंटिफायर): ULID प्रमाणेच परंतु वेगळ्या टाइमस्टॅम्प कोडिंगसह.
- स्नोफ्लेक आयडी: ट्विटरच्या वितरित अद्वितीय आयडेंटिफायर जनरेशन प्रणाली, ज्यामध्ये टाइमस्टॅम्प आणि वर्कर आयडी समाविष्ट आहे.
इतिहास
ULIDs 2016 मध्ये अलीझाइन फीरस्ता यांनी UUIDs च्या पर्याय म्हणून सादर केले. त्यांना UUIDs च्या काही मर्यादांना संबोधित करण्यासाठी डिझाइन केले गेले, विशेषतः सॉर्टेबलिटी आणि वाचनयोग्यता संदर्भात. ULID विशिष्टता त्यांच्या सादरीकरणानंतर स्थिर राहिली आहे, विविध प्रोग्रामिंग भाषांमध्ये उपलब्ध विविध कार्यान्वयनांसह.
उदाहरणे
येथे विविध प्रोग्रामिंग भाषांमध्ये ULIDs तयार करण्यासाठी काही कोड उदाहरणे आहेत:
1// जावास्क्रिप्ट कार्यान्वयन
2function generateULID() {
3 const timestamp = Date.now().toString(36).padStart(10, '0');
4 const randomness = crypto.getRandomValues(new Uint8Array(16))
5 .reduce((acc, byte) => acc + byte.toString(36).padStart(2, '0'), '');
6 return (timestamp + randomness).toUpperCase();
7}
8
9console.log(generateULID());
10
1## पायथन कार्यान्वयन
2import time
3import secrets
4import base64
5
6def generate_ulid():
7 timestamp = int(time.time() * 1000).to_bytes(6, byteorder="big")
8 randomness = secrets.token_bytes(10)
9 return base64.b32encode(timestamp + randomness).decode("ascii").lower()
10
11print(generate_ulid())
12
1// जावा कार्यान्वयन
2import java.security.SecureRandom;
3import java.time.Instant;
4
5public class ULIDGenerator {
6 private static final SecureRandom random = new SecureRandom();
7 private static final char[] ENCODING_CHARS = "0123456789ABCDEFGHJKMNPQRSTVWXYZ".toCharArray();
8
9 public static String generateULID() {
10 long timestamp = Instant.now().toEpochMilli();
11 byte[] randomness = new byte[10];
12 random.nextBytes(randomness);
13
14 StringBuilder result = new StringBuilder();
15 // टाइमस्टॅम्प कोडित करा
16 for (int i = 9; i >= 0; i--) {
17 result.append(ENCODING_CHARS[(int) (timestamp % 32)]);
18 timestamp /= 32;
19 }
20 // यादृच्छिकता कोडित करा
21 for (byte b : randomness) {
22 result.append(ENCODING_CHARS[b & 31]);
23 }
24 return result.toString();
25 }
26
27 public static void main(String[] args) {
28 System.out.println(generateULID());
29 }
30}
31
हे उदाहरणे जावास्क्रिप्ट, पायथन, आणि जावा मध्ये ULIDs कशा तयार करायच्या हे दर्शवितात. तुम्ही या कार्ये तुमच्या विशिष्ट गरजांसाठी अनुकूलित करू शकता किंवा अद्वितीय आयडेंटिफायर आवश्यक असलेल्या मोठ्या प्रणालींमध्ये समाकलित करू शकता.
संदर्भ
- "ULID विशिष्टता." GitHub, https://github.com/ulid/spec. 2 ऑगस्ट 2024 रोजी प्रवेश केला.
- "क्रॉकफोर्डच्या बेस32 कोडिंग." बेस32 कोडिंग, http://www.crockford.com/base32.html. 2 ऑगस्ट 2024 रोजी प्रवेश केला.
- "UUID विरुद्ध ULID." स्टॅक ओव्हरफ्लो, https://stackoverflow.com/questions/54222235/uuid-vs-ulid. 2 ऑगस्ट 2024 रोजी प्रवेश केला.
प्रतिसाद
या साधनाबद्दल प्रतिसाद देण्यासाठी प्रतिसाद टॉस्टवर क्लिक करा
संबंधित साधने
तुमच्या कार्यप्रवाहासाठी उपयुक्त असलेल्या अधिक साधनांचा शोध घ्या