सीक्रेट की जनरेटर
JWT, AES, Laravel, Rails, Django और सेशन कुकी के लिए सुरक्षित यादृच्छिकता से सीक्रेट key बनाएँ – सही लंबाई और एन्कोडिंग के साथ, पूरी तरह ब्राउज़र में।
256 बिट एन्ट्रॉपी · हर मान में 43 अक्षर
crypto.getRandomValues से स्थानीय रूप से बनाया गया; कुछ भी भेजा या सहेजा नहीं जाता। सीक्रेट को एनवायरनमेंट वेरिएबल या सीक्रेट मैनेजर में रखें, सोर्स कोड में कभी नहीं।
सीक्रेट की जनरेटर क्या है?
फ़्रेमवर्क और लाइब्रेरी को खास प्रारूप में रैंडम सीक्रेट key चाहिए: JWT HS256 के लिए 256-बिट Base64url स्ट्रिंग, AES-256 के लिए 32 hex बाइट, Laravel के APP_KEY के लिए base64: + 32 बाइट, Rails के secret_key_base के लिए 128 hex अक्षर, Django के SECRET_KEY के लिए 50 अक्षर। उपयोग चुनें और टूल सही लंबाई और एन्कोडिंग वाली key बनाता है, या आप फ़ॉर्मेट खुद कस्टमाइज़ करें।
सीक्रेट की जनरेटर का उपयोग कैसे करें
- JWT HS256 सीक्रेट या Laravel APP_KEY जैसा उपयोग चुनें।
- ज़रूरत हो तो फ़ॉर्मेट और रैंडम बाइट / लंबाई बदलें (इससे कस्टम पर स्विच हो जाता है)।
- जब तक key न मिल जाए फिर से जनरेट करें पर क्लिक करें, फिर उसे अपने एनवायरनमेंट वेरिएबल में कॉपी करें।
उदाहरण
Purpose: JWT HS256 secret (256 bits, Base64url)
-IXerdjEBBrFmWvMzQ0izB3-w1aweuEukH9SlJBWmwE
256 बिट एन्ट्रॉपी। रैंडम — आपकी key अलग होगी।
सीक्रेट की जनरेटर का उपयोग कब करें
नया एनवायरनमेंट सेट करते समय, लीक हुई key बदलते समय, या JWT साइनिंग कॉन्फ़िगर करते समय इसका उपयोग करें। असममित साइनिंग (RS256, ES256) के लिए आपको साझा सीक्रेट नहीं, key जोड़ी चाहिए। key को कभी Git में कमिट न करें; उन्हें एनवायरनमेंट वेरिएबल या सीक्रेट मैनेजर में रखें।
सीक्रेट की जनरेटर कैसे काम करता है
सभी key crypto.getRandomValues से आती हैं। बाइट-आधारित प्रीसेट एल्गोरिद्म को ठीक उतने बाइट निकालते हैं जितने चाहिए (AES-128 के लिए 16, AES-256 और HS256 के लिए 32, HS512 और Rails के लिए 64) और उन्हें hex, Base64 या Base64url में एन्कोड करते हैं। Django की key अक्षरों और अंकों में से समान रूप से चुने 50 अक्षर हैं (लगभग 298 बिट)। एन्ट्रॉपी वाली पंक्ति बिट में मज़बूती दिखाती है और 128 बिट से कम होने पर चेतावनी देती है।
सामान्य उपयोग मामले
- नए Laravel डिप्लॉयमेंट के लिए APP_KEY सेट करना
- JWT HS256 साइनिंग सीक्रेट बनाना
- रेस्ट पर डेटा एन्क्रिप्ट करने के लिए AES-256 key बनाना
- लीक के बाद Django या Rails सीक्रेट बदलना
सुरक्षा नोट
लोकली बनती है और कहीं नहीं भेजी जाती। key वाला कोई भी व्यक्ति टोकन जाली बना सकता है या डेटा डिक्रिप्ट कर सकता है, इसलिए उसे केवल एनवायरनमेंट वेरिएबल या सीक्रेट मैनेजर में रखें।
अक्सर पूछे जाने वाले प्रश्न
JWT HS256 सीक्रेट कितना लंबा होना चाहिए?
RFC 7518 की सिफ़ारिश के अनुसार कम से कम 256 बिट (32 बाइट), यानी SHA-256 आउटपुट का आकार। HS512 के लिए 512 बिट इस्तेमाल करें।
क्या यह php artisan key:generate चलाने जैसा ही है?
प्रारूप में हाँ: Laravel का कमांड भी 32 रैंडम बाइट बनाता है, उन्हें Base64 में एन्कोड करता है और base64: प्रीफ़िक्स लगाता है।
चालू ऐप की key बदलने पर क्या होता है?
मौजूदा सेशन, साइन की गई कुकी, टोकन और पुरानी key से एन्क्रिप्ट की गई हर चीज़ अमान्य या अपठनीय हो जाती है। बदलाव की योजना सावधानी से बनाएँ।