इस्तेमाल करने का तरीका
- चुनें कि हर टोकन में कितने रैंडम bytes होने चाहिए। सीक्रेट के लिए 32 bytes (256 bits) एक सुरक्षित डिफ़ॉल्ट है।
- टोकन के इस्तेमाल के अनुसार एन्कोडिंग चुनें और चाहें तो “myapp_live_” जैसा प्रीफ़िक्स जोड़ें।
- ज़रूरी टोकन की संख्या चुनें, फिर किसी एक को कॉपी करें या “सभी कॉपी करें” चुनें। नए टोकन पाने के लिए “फिर से जनरेट करें” दबाएँ।
यह कैसे काम करता है
टोकन, crypto.getRandomValues से बनाए गए रैंडम बाइट्स से बनते हैं। यह आपके ब्राउज़र और ऑपरेटिंग सिस्टम में मौजूद क्रिप्टोग्राफ़िक रूप से सुरक्षित जनरेटर है। Math.random का इस्तेमाल कभी नहीं किया जाता।
Hex, Base64 और Base64URL के लिए, टूल आपके चुने हुए बाइट्स की ठीक उतनी ही संख्या लेकर उन्हें एन्कोड करता है। इसलिए 32-बाइट के टोकन में हमेशा 256 बिट एंट्रॉपी होती है: 64 hex अक्षर, 44 Base64 अक्षर (जिसमें पैडिंग के लिए एक = शामिल है) या 43 Base64URL अक्षर। Base64URL में + और / की जगह - और _ होते हैं और पैडिंग हटा दी जाती है, इसलिए इसे बिना एस्केप किए URL, फ़ाइल नाम और HTTP हेडर में इस्तेमाल किया जा सकता है।
अल्फ़ान्यूमेरिक टोकन में केवल A–Z, a–z और 0–9 होते हैं, जिससे उन अक्षरों से बचा जाता है जिन्हें कुछ सिस्टम विशेष मानते हैं। हर अक्षर में लगभग 5.95 बिट होते हैं, इसलिए चुने हुए बिट्स तक पहुँचने के लिए टूल पर्याप्त अक्षर बनाता है (256 बिट के लिए 43 अक्षर)। सभी 62 अक्षरों के चुने जाने की संभावना बराबर रखने के लिए रिजेक्शन सैंपलिंग का इस्तेमाल होता है।
उपसर्ग सामान्य टेक्स्ट के रूप में जोड़ा जाता है और इससे कोई एंट्रॉपी नहीं जुड़ती। “sk_live_” जैसे उपसर्ग लीक हुई कुंजियों को पहचानना और सीक्रेट स्कैनर से ढूँढना आसान बनाते हैं। सीक्रेट को पासवर्ड मैनेजर या सीक्रेट स्टोर में रखें, सोर्स कोड में नहीं।
उदाहरण
Webhook हस्ताक्षर के लिए सीक्रेट
Hex में 32 बाइट से 256 बिट एंट्रॉपी वाला 64-अक्षरों का सीक्रेट बनता है। HMAC-SHA-256 हस्ताक्षरों के लिए इसे भेजने वाले और पाने वाले, दोनों के कॉन्फ़िगरेशन में डाल सकते हैं।
पहचानने योग्य उपसर्ग वाली API key
24 बाइट, Alphanumeric और “acme_live_” उपसर्ग चुनें। हर कुंजी में acme_live_ के बाद 33 अक्षर और अंक होंगे, कम-से-कम 192 बिट होंगे और इसे लॉग या सीक्रेट स्कैनर में आसानी से पहचाना जा सकेगा।
URL-सुरक्षित रीसेट टोकन
Base64URL में 16 बाइट से 22-अक्षरों का टोकन (128 बिट) बनता है, जिसे /reset?token=… जैसे लिंक में प्रतिशत-एन्कोडिंग के बिना सीधे इस्तेमाल किया जा सकता है।
अक्सर पूछे जाने वाले सवाल
सीक्रेट में कितने बाइट होने चाहिए?
session ID जैसे टोकन का अनुमान लगाना असंभव बनाने के लिए 128 बिट (16 बाइट) पर्याप्त हैं। हस्ताक्षर कुंजियों जैसे लंबे समय तक इस्तेमाल होने वाले सीक्रेट के लिए 256 बिट (32 बाइट) आम तौर पर सुझाए जाते हैं और यह SHA-256 के आउटपुट आकार के बराबर है।
कौन-सी एन्कोडिंग चुननी चाहिए?
चुने हुए बाइट्स की संख्या समान होने पर एंट्रॉपी भी समान रहती है; केवल टेक्स्ट का रूप अलग होता है। अधिकतम अनुकूलता के लिए hex, URL और हेडर में छोटे टोकन के लिए Base64URL, और जब कोई सिस्टम विराम चिह्न स्वीकार न करे तब alphanumeric इस्तेमाल करें।
क्या टोकन सेव या लॉग किए जाते हैं?
नहीं। ये इसी ब्राउज़र टैब में बनते हैं और पेज छोड़ने पर गायब हो जाते हैं। इन्हें किसी सर्वर पर नहीं भेजा जाता और न ही एनालिटिक्स में शामिल किया जाता है।
क्या मैं इन्हें पासवर्ड के रूप में इस्तेमाल कर सकता हूँ?
हाँ, ये पर्याप्त रूप से रैंडम होते हैं, लेकिन वेबसाइटों पर अक्सर अलग-अलग प्रकार के अक्षरों का मिश्रण ज़रूरी होता है। Password Generator से आप इन नियमों को सीधे नियंत्रित कर सकते हैं।
गोपनीयता
टोकन आपके ब्राउज़र में crypto.getRandomValues से बनाए जाते हैं। इन्हें अपलोड, सेव या लॉग नहीं किया जाता और न ही एनालिटिक्स को भेजा जाता है; केवल टूल के इस्तेमाल का एक अनाम इवेंट रिकॉर्ड किया जाता है।