Bcrypt क्या है?
Bcrypt एक पासवर्ड-हैशिंग फ़ंक्शन है जिसे Niels Provos और David Mazières ने Blowfish सिफर के आधार पर डिज़ाइन किया। MD5 या SHA-256 जैसे तेज़ डाइजेस्ट के विपरीत, bcrypt जानबूझकर धीमा और कम्प्यूटेशनल रूप से महँगा है — यह चुराए गए पासवर्ड हैश पर ब्रूट-फ़ोर्स हमलों को अव्यावहारिक बनाता है। Bcrypt प्रति पासवर्ड अपने आप एक रैंडम सॉल्ट जनरेट करता है, इसलिए समान पासवर्ड भी अलग-अलग हैश उत्पन्न करते हैं।
Bcrypt कैसे काम करता है?
Bcrypt एल्गोरिदम पूरी तरह आपके ब्राउज़र में चलता है। यहाँ चरण दर चरण बताया गया है:
- आपका पासवर्ड UTF-8 बाइट्स के रूप में एन्कोड होता है और bcrypt की सूची में फ़ीड किया जाता है, जो पासवर्ड और सॉल्ट का उपयोग करके Blowfish सिफर के 4,184-बाइट P-array और S-boxes को आरंभ करता है।
- एक रैंडम 128-बिट सॉल्ट जनरेट होता है। सॉल्ट को सूची में मिलाया जाता है ताकि प्रत्येक अद्वितीय सॉल्ट समान पासवर्ड के लिए भी पूरी तरह अलग हैश उत्पन्न करे।
- सूची को 2^cost राउंड (जैसे, 2^10 = 1,024 पुनरावृत्तियाँ कॉस्ट 10 पर) के लिए दोहराया जाता है। प्रत्येक पुनरावृत्ति सॉल्ट और P-array प्रविष्टियों को पुनः एन्क्रिप्ट करती है, जिससे कॉस्ट बढ़ने पर गणना धीमी हो जाती है।
- अंतिम आउटपुट
$2b$<cost>$<salt><hash>फ़ॉर्मेट में 60-वर्णों की स्ट्रिंग होता है, जहाँ कॉस्ट शून्य-पैडेड (जैसे, 10), सॉल्ट 22 Base64 वर्ण, और हैश 31 Base64 वर्ण है। - सत्यापन के लिए, वही एल्गोरिदम उम्मीदवार पासवर्ड और संग्रहीत हैश से निकाले गए सॉल्ट के साथ पुनः चलाया जाता है। यदि व्युत्पन्न हैश संग्रहीत हैश से मेल खाता है, तो पासवर्ड सही है।
मुझे किस कॉस्ट फ़ैक्टर का उपयोग करना चाहिए?
कॉस्ट फ़ैक्टर पुनरावृत्ति संख्या का लघुगणक है — कॉस्ट 10 का अर्थ 2^10 = 1,024 राउंड, कॉस्ट 12 का अर्थ 4,096 राउंड। अपनी सुरक्षा आवश्यकताओं और हार्डवेयर के आधार पर चुनें:
- कॉस्ट 4-6 (16-64 राउंड) — केवल डेवलपमेंट और टेस्टिंग के लिए। प्रोडक्शन में उपयोग के लिए बहुत तेज़; न्यूनतम सुरक्षा प्रदान करता है।
- कॉस्ट 8 (256 राउंड) — गैर-महत्वपूर्ण एप्लिकेशन के लिए न्यूनतम सीमा। आधुनिक हार्डवेयर पर लगभग 6ms।
- कॉस्ट 10 (1,024 राउंड) — वर्तमान अनुशंसित आधार रेखा। लगभग 25ms लगता है। अधिकांश वेब एप्लिकेशन के लिए उपयुक्त।
- कॉस्ट 12 (4,096 राउंड) — एडमिन पोर्टल, वित्तीय प्रणालियों और उच्च-सुरक्षा ऐप्स के लिए अनुशंसित। लगभग 100ms लगता है।
- कॉस्ट 14 (16,384 राउंड) — उच्च सुरक्षा। लगभग 400ms लगता है। मास्टर पासवर्ड, एन्क्रिप्शन कुंजियों या जब लॉगिन विलंबता स्वीकार्य हो, के लिए उपयोग करें।
इस bcrypt जनरेटर का उपयोग क्यों करें?
- आपकी गोपनीयता सुरक्षित है — हर पासवर्ड आपके ब्राउज़र में स्थानीय रूप से हैश होता है, और कोई डेटा आपकी डिवाइस से बाहर नहीं जाता।
- आपको दोनों मोड एक साथ मिलते हैं: नए हैश जनरेट करें या मौजूदा हैश सत्यापित करें बिना पेज बदले।
- कॉस्ट फ़ैक्टर 4 (तेज़) से 15 (बहुत धीमा) तक समायोज्य है, ताकि आप अपने एप्लिकेशन की सुरक्षा आवश्यकताओं से मेल खा सकें।
- हैश मानक
$2b$फ़ॉर्मेट का उपयोग करते हैं जो हर प्रमुख भाषा और फ्रेमवर्क के साथ काम करता है।
Bcrypt के सामान्य अनुप्रयोग क्या हैं?
उद्योग भर में पासवर्ड स्टोरेज और सत्यापन के लिए Bcrypt का व्यापक रूप से उपयोग किया जाता है:
- वेब एप्लिकेशन प्रमाणीकरण — डेटाबेस में उपयोगकर्ता पासवर्ड हैश संग्रहीत करना ताकि प्लेनटेक्स्ट पासवर्ड कभी सहेजे न जाएँ।
- API कुंजी हैशिंग — API सीक्रेट को संग्रहीत करने से पहले हैश करना, ताकि डेटाबेस उल्लंघन से मान्य क्रेडेंशियल लीक न हों।
- माइग्रेशन ऑडिटिंग — जाँचना कि किसी पुरानी प्रणाली के लीगेसी पासवर्ड हैश ऑथ लेयर अपग्रेड करने के बाद भी उपयोगकर्ताओं को प्रमाणित कर सकते हैं।
Bcrypt हैश कैसा दिखता है?
पासवर्ड hunter2 को कॉस्ट फ़ैक्टर 10 के साथ हैश करने पर एक स्ट्रिंग मिलती है जैसे $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy। फ़ॉर्मेट इस प्रकार विभाजित होता है: $2b$ (एल्गोरिदम संस्करण), 10 (कॉस्ट फ़ैक्टर), $, फिर 22 वर्ण सॉल्ट और 31 वर्ण हैश, सभी Base64-एन्कोडेड। समान पासवर्ड के साथ प्रत्येक रन रैंडम सॉल्ट के कारण अलग हैश उत्पन्न करता है।
यह bcrypt जनरेटर पूरी तरह आपके ब्राउज़र में शुद्ध-JavaScript कार्यान्वयन का उपयोग करके चलता है। पासवर्ड संग्रहीत करने से पहले हैश करें, मौजूदा हैश सत्यापित करें, और कॉस्ट फ़ैक्टर को अपनी सुरक्षा आवश्यकताओं के अनुसार समायोजित करें — बिना एक भी बाइट सर्वर पर भेजे।