Snowflake ID जेनरेटर और डिकोडर
Twitter या Discord epoch के साथ 64-बिट Snowflake ID जेनरेट और डिकोड करें, ठीक आपके ब्राउज़र में। आपके द्वारा दर्ज की गई कोई चीज़ आपके डिवाइस से बाहर नहीं जाती।
Snowflake ID जेनरेटर पूरी तरह आपके ब्राउज़र में चलता है। आपके द्वारा दर्ज या डिकोड किए ID, टाइमस्टैम्प, और फ़ील्ड मान कभी आपके डिवाइस से बाहर नहीं जाते और कुछ भी ArrayKit पर अपलोड नहीं होता।
ULID Generator खोलें
Snowflake ID जेनरेटर के बारे में
Snowflake ID जेनरेटर 64-बिट Snowflake ID उसी तरह बनाता है जैसे Twitter और Discord करते हैं: एक मिलीसेकंड टाइमस्टैम्प, एक worker id, एक process id, और एक प्रति-मिलीसेकंड sequence एक BigInt में पैक किया गया। Discord या Twitter epoch प्रीसेट चुनें, या Unix मिलीसेकंड में अपना स्वयं का epoch टाइप करें, फिर एक ID बनाने के लिए टाइमस्टैम्प और फ़ील्ड मान सेट करें। किसी भी Snowflake को पेस्ट करने और आपके द्वारा चुने epoch के तहत सटीक मिलीसेकंड टाइमस्टैम्प, उसका ISO समय, और worker, process, तथा sequence बिट्स देखने के लिए Decode पर स्विच करें। यह रिवर्स-इंजीनियरिंग के लिए काम आता है कि एक Discord संदेश कब पोस्ट किया गया, एक टेस्ट फ़िक्स्चर में एक ID पुन: उत्पन्न करने, या एक वितरित id योजना की जाँच करने के लिए। सभी बिट-शिफ़्टिंग आपके डिवाइस पर होती है; आपके द्वारा दर्ज किए ID और टाइमस्टैम्प कभी अपलोड नहीं होते।
विशेषताएँ
- एक टाइमस्टैम्प, worker, process, और sequence से एक 64-बिट Snowflake जेनरेट करें
- एक-क्लिक Discord (1420070400000) और Twitter (1288834974657) epoch प्रीसेट
- Unix मिलीसेकंड में किसी भी अन्य Snowflake योजना के लिए कस्टम epoch फ़ील्ड
- Decode मोड किसी भी Snowflake को उसके टाइमस्टैम्प, ISO समय, और फ़ील्ड बिट्स में बदलता है
- "Now" बटन एक वर्तमान-समय ID के लिए आपकी घड़ी से टाइमस्टैम्प सीड करता है
- BigInt गणित सभी 64 बिट्स को सटीक रखता है — बड़े ID पर कोई परिशुद्धता हानि नहीं
- जब worker, process, या sequence अपने बिट्स ओवरफ़्लो करते हैं तो स्पष्ट रेंज त्रुटियाँ
- पूरी तरह आपके ब्राउज़र में चलता है, कोई ID किसी सर्वर पर नहीं भेजा जाता
Snowflake ID जेनरेटर का उपयोग कैसे करें
- Discord, Twitter, या एक कस्टम epoch चुनें
- Generate में, टाइमस्टैम्प और worker, process, तथा sequence मान सेट करें
- परिणामी 64-बिट Snowflake ID कॉपी करें
- Decode पर स्विच करें और उसका टाइमस्टैम्प तथा फ़ील्ड वापस पढ़ने के लिए एक Snowflake पेस्ट करें
उदाहरण
इनपुट
175928847299117063 (Discord epoch)
आउटपुट
timestamp: 2016-04-30T11:18:25.796Z
worker: 1 process: 0 sequence: 7
एक Discord Snowflake डिकोड करना पुनर्प्राप्त करता है कि यह कब बनाया गया और इसके फ़ील्ड बिट्स।
सामान्य त्रुटियाँ और समस्या निवारण
- डिकोड किया गया टाइमस्टैम्प दशकों दूर है (जैसे वर्ष 1970 या 2100)। — आप गलत epoch के साथ डिकोड कर रहे हैं। स्रोत से मेल खाने के लिए प्रीसेट बदलें — Discord बनाम Twitter epoch वर्षों से भिन्न होते हैं — या सटीक कस्टम epoch सेट करें।
- Generate 'Sequence must be between 0 and 4095.' रिपोर्ट करता है। — sequence फ़ील्ड केवल 12 बिट्स है। worker और process को 0–31 के भीतर और sequence को 0–4095 के भीतर रखें ताकि हर मान अपने स्लॉट में फिट हो।
- 'Timestamp is before the chosen epoch.' — एक Snowflake अपने epoch से मिलीसेकंड संग्रहीत करता है, इसलिए टाइमस्टैम्प epoch पर या उसके बाद होना चाहिए। एक बाद का समय या एक छोटा epoch चुनें।
- पेस्ट किया गया ID गोल दिखता है या अपने अंतिम अंक खो देता है। — Snowflake JavaScript की सुरक्षित integer रेंज से अधिक होते हैं, इसलिए उन्हें स्ट्रिंग के रूप में मानें। यह टूल BigInt का उपयोग करता है, लेकिन एक ऐसा ID पेस्ट करने से बचें जिसे किसी अन्य टूल ने पहले से एक float के रूप में पार्स किया।
अक्सर पूछे जाने वाले प्रश्न
- एक Snowflake ID क्या है?
- एक Snowflake Twitter और Discord द्वारा उपयोग किया जाने वाला एक 64-बिट id है जो एक मिलीसेकंड टाइमस्टैम्प, एक worker (मशीन) id, एक process id, और एक प्रति-मिलीसेकंड sequence को एक अकेली सॉर्ट करने योग्य संख्या में पैक करता है, इसलिए id एक केंद्रीय काउंटर के बिना अद्वितीय और मोटे तौर पर समय-क्रमबद्ध होते हैं।
- मैं एक Discord संदेश की ID से कैसे पता करूँ कि यह कब भेजा गया?
- संदेश या उपयोगकर्ता id को Discord epoch चयनित के साथ Decode में पेस्ट करें। टूल 42 टाइमस्टैम्प बिट्स को बाहर शिफ़्ट करता है, Discord epoch (1420070400000 ms) जोड़ता है, और सटीक निर्माण समय को ISO और Unix मिलीसेकंड के रूप में दिखाता है।
- Twitter और Discord epoch में क्या अंतर है?
- दोनों लेआउट समान बिट चौड़ाई के हैं, लेकिन वे अलग-अलग प्रारंभ बिंदुओं से मिलीसेकंड गिनते हैं: Twitter 1288834974657 (Nov 2010) का उपयोग करता है और Discord 1420070400000 (Jan 2015) का। गलत वाले के साथ डिकोड करना हर टाइमस्टैम्प को उस अंतराल से शिफ़्ट कर देता है।
- worker और process को 31 पर और sequence को 4095 पर क्यों सीमित किया जाता है?
- लेआउट worker और process को प्रत्येक को 5 बिट्स देता है (2^5 − 1 = 31) और sequence को 12 बिट्स (2^12 − 1 = 4095)। उन सीमाओं से ऊपर के मान अगले फ़ील्ड में ओवरफ़्लो हो जाते, इसलिए जेनरेटर उन्हें अस्वीकार करता है।
- क्या मैं अपनी स्वयं की सेवा के लिए एक कस्टम epoch उपयोग कर सकता हूँ?
- हाँ। Custom प्रीसेट चुनें और अपना epoch Unix मिलीसेकंड में दर्ज करें। Generate और Decode फिर उस मान का उपयोग करते हैं, जो आपको किसी भी Snowflake-शैली योजना के साथ काम करने देता है जो 42/5/5/12 बिट लेआउट रखती है।
- क्या मेरे द्वारा जेनरेट या डिकोड किए ID कहीं भेजे जाते हैं?
- नहीं। हर बिट-शिफ़्ट BigInt के साथ आपके ब्राउज़र में चलता है। आपके द्वारा टाइप या पेस्ट किए टाइमस्टैम्प, id, और फ़ील्ड मान कभी आपके डिवाइस से बाहर नहीं जाते और ArrayKit पर अपलोड नहीं होते।
संबंधित टूल
- ULID जेनरेटर — सॉर्ट करने योग्य ULID जेनरेट करें, एम्बेडेड टाइमस्टैम्प डिकोड करें, और ULID तथा UUID के बीच बदलें।
- UUID जेनरेटर — एक या अधिक यादृच्छिक UUID v4 मान जेनरेट करें।
- Unix टाइमस्टैम्प कन्वर्टर — Unix टाइमस्टैम्प और पठनीय तिथियों (लोकल और UTC) के बीच कन्वर्ट करें।
- हैश जेनरेटर — Web Crypto API के माध्यम से SHA-256 / SHA-1 / SHA-384 / SHA-512।
- नंबर बेस कन्वर्टर — पूर्णांकों को बाइनरी, ऑक्टल, दशमलव और हेक्साडेसिमल के बीच कन्वर्ट करें।
- Base58 एन्कोडर / डिकोडर — Bitcoin अल्फ़ाबेट के साथ टेक्स्ट या HEX से Base58 एन्कोड और डिकोड करें।
सभी ArrayKit टूल