इस टूल के बारे में
एन्क्रिप्शन कुंजियाँ, API सीक्रेट्स और बियरर टोकन — इन सबको अंततः एक ही चीज़ चाहिए होती है: बाइट्स की एक ऐसी श्रृंखला जिसका कोई अनुमान न लगा सके। `Math.random()` इसके लिए नहीं बना है — यह एक तेज़, अनुमानित PRNG है जो एनिमेशन और शफ़लिंग के लिए है, सुरक्षा के लिए नहीं। यह टूल इसके बजाय `crypto.getRandomValues()` का उपयोग करता है, जो Web Crypto API का क्रिप्टोग्राफ़िक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर है, इसलिए मिलने वाले बाइट्स वास्तविक कुंजी सामग्री के लिए उपयुक्त हैं: AES कुंजियाँ, HMAC सीक्रेट्स, सेशन टोकन, या कुछ भी जिसे अनुमान से बचना हो।
एक बिट लंबाई चुनें — 128 और 256 सामान्य AES कुंजी आकार हैं, 512 और 1024 बड़े HMAC सीक्रेट्स या उच्च-एन्ट्रॉपी टोकन के लिए उपयुक्त हैं — फिर एक एन्कोडिंग चुनें। Hex सबसे सार्वभौमिक है (प्रति बाइट दो वर्ण, देखने में आसान), Base64 सघन और व्यापक रूप से समर्थित है, और Base64URL `+`, `/` और `=` वर्णों को बदल देता है ताकि परिणाम बिना एस्केपिंग के URL, फ़ाइल नाम या JWT में सुरक्षित रूप से फिट हो सके। नीचे दिया गया अलग API-कुंजी सेक्शन एक Stripe-शैली का सीक्रेट बनाता है — एक छोटा प्रीफ़िक्स, अंडरस्कोर, फिर एक यादृच्छिक Base64URL स्ट्रिंग — यह प्रारूप अनगिनत SaaS API अपने बियरर टोकन के लिए उपयोग करते हैं।
सब कुछ आपके ब्राउज़र में होता है: यहाँ जनरेट की गई कोई भी कुंजी या टोकन कहीं नहीं भेजी जाती। इसका यह भी मतलब है कि पेज से हटने पर कुछ भी लॉग या पुनर्प्राप्त नहीं होता, इसलिए पेज छोड़ने से पहले अपनी कुंजी कॉपी कर लें।
अक्सर पूछे जाने वाले प्रश्न
AES कुंजी के लिए मुझे कितने बिट्स चाहिए?
AES 128, 192, या 256-बिट कुंजियों का समर्थन करता है। AES-256 (इस टूल के 256-बिट hex या base64 आउटपुट का उपयोग करते हुए) सबसे सामान्य आधुनिक विकल्प है और किसी भी पूर्वानुमेय भविष्य से कहीं आगे तक सुरक्षित माना जाता है, यहां तक कि सैद्धांतिक क्वांटम-कंप्यूटिंग हमलों के खिलाफ भी जो इसकी प्रभावी शक्ति को केवल लगभग आधा कर देंगे।
क्या base64url सामान्य base64 के समान है?
नहीं, वे करीब हैं पर समान नहीं: base64url `+` और `/` वर्णों को `-` और `_` से बदल देता है और आमतौर पर अंतिम `=` पैडिंग को छोड़ देता है, इसलिए परिणामी स्ट्रिंग बिना एस्केपिंग के सीधे URL या फ़ाइल नाम में उपयोग करने के लिए सुरक्षित है — अन्यथा नियमित base64 के विशेष वर्णों को URL में प्रतिशत-एन्कोडिंग की आवश्यकता होगी।