Bcrypt हैश और वैरीफाई

पासवर्ड के लिए नमकीन bcrypt हैश जेनरेट करें और मौजूदा हैश के विरुद्ध प्लेनटेक्स्ट सत्यापित करें, सब आपके ब्राउज़र में।

पासवर्ड के लिए नमकीन bcrypt हैश जेनरेट करें और मौजूदा हैश के विरुद्ध प्लेनटेक्स्ट सत्यापित करें, सब आपके ब्राउज़र में। पासवर्ड के लिए नमकीन bcrypt हैश जेनरेट करें और मौजूदा हैश के विरुद्ध प्लेनटेक्स्ट सत्यापित करें, सब आपके ब्राउज़र में।

जेनरेट किया गया bcrypt हैश

पृष्ठभूमि

bcrypt क्या है और यह क्यों मायने रखता है

bcrypt एक अनुकूली पासवर्ड हैशिंग फ़ंक्शन है जिसे नील्स प्रोवोस और डेविड मेज़िएरेस ने 1999 में डिज़ाइन किया। MD5 या SHA-256 जैसे तेज़ डाइजेस्ट के विपरीत, bcrypt जानबूझकर CPU समय की लागत लगाता है: प्रत्येक हैश Blowfish साइफ़र को कॉन्फ़िगर किए गए राउंड की संख्या के माध्यम से चलाता है, और काम हर इन्क्रीमेंट के साथ दोगुना हो जाता है लागत कारक का। यह धीमापन ही है जो ऑफ़लाइन शब्दकोश और ब्रूट-फोर्स हमलों को महँगा बनाता है। एक सही bcrypt कार्यान्वयन एक आउटपुट स्ट्रिंग के अंदर यादृच्छिक 128-बिट साल्ट भी एम्बेड करता है, ताकि एक ही पासवर्ड के दो हैश हमेशा भिन्न हों और रेनबो टेबल उसके विरुद्ध व्यर्थ हों।

एक bcrypt हैश को पढ़ना

एक bcrypt हैश इस तरह दिखता है $2b$12$e0.6kJ8a5X8u5Yp3qR5E0e9dF4z3W2c1v0b9n8m7l6k5j4h3g2f1। अग्रणी डॉलर चिह्नों के बाद के भाग एल्गोरिदम संस्करण, लागत और साल्ट को वहन करते हैं:

  • $2b$ -- एल्गोरिदम संशोधन। $2a$ और $2y$ पुराने वेरिएंट हैं जिनमें 8-बिट साइन बग के लिए सूक्ष्म हैंडलिंग अंतर हैं; $2b$ वर्तमान अनुशंसा है और जो bcryptjs उत्सर्जित करता है।
  • 12 -- लागत कारक। 2^12 = 4096 राउंड की कुंजी अनुसूची। हर +1 समय को दोगुना करता है; 10-12 इंटरैक्टिव लॉगिन के लिए एक उचित डिफ़ॉल्ट है, जबकि 12-14 संग्रहीत क्रेडेंशियल के लिए उपयुक्त है।
  • शेष 53 वर्ण एक 22-वर्ण (128-बिट) base64 साल्ट प्लस एक 31-वर्ण (184-बिट) चेकसम रखते हैं। पूरी स्ट्रिंग एक स्व-निहित रिकॉर्ड है: सत्यापनकर्ता संस्करण, लागत और साल्ट को हैश से वापस पढ़ता है और तुलना करने के लिए व्युत्पत्ति को फिर से चलाता है।

इस उपकरण का उपयोग कैसे करें

इनपुट में एक पासवर्ड टाइप करें, एक लागत कारक चुनें, और हैश दबाएँ। जेनरेट किया गया हैश आउटपुट बॉक्स में दिखाई देता है और सत्यापन फ़ील्ड में भी रखा जाता है। मौजूदा हैश जांचने के लिए, इसे सत्यापन फ़ील्ड में पेस्ट करें और इनपुट में उम्मीदवार पासवर्ड टाइप करें: पेज तुरंत तुलना करता है और दिखाता है एक हरा चेक या एक लाल क्रॉस। क्योंकि तुलना bcrypt.compareSync के साथ की जाती है, यह कभी नहीं बताता कि एक गलत अनुमान कितना करीब था -- हर प्रयास परिणाम तय होने से पहले पूरा हैश किया जाता है।

सुरक्षा नोट्स और सीमाएँ

bcrypt इनपुट को 72 बाइट्स तक काट देता है: लंबे पासवर्ड चुपचाप काटे जाते हैं, इसलिए पहले 72 बाइट्स साझा करने वाले दो पासवर्ड समान तुलना करते हैं। यदि आपको लंबे इनपुट चाहिए, तो SHA-256 (hex-encoded) के साथ प्री-हैश करें और उस डाइजेस्ट को bcrypt करें। bcrypt एक जानबूझकर मेमोरी-हल्का एल्गोरिदम है -- यह GPU सरणियों का Argon2 या scrypt जैसे मेमोरी-हार्ड डिज़ाइन की तुलना में कम अच्छा विरोध करता है, लेकिन इसकी 4 KB टेबल और 64-बाइट स्थिति फिर भी सस्ते ASIC क्रैकिंग को अनाकर्षक बनाती है। बिल्कुल नए सिस्टम के लिए Argon2id अक्सर एक बेहतर विकल्प है; bcrypt एक उत्कृष्ट, व्यापक रूप से समर्थित विकल्प बना रहता है लेगेसी संगतता और उन मामलों के लिए जहाँ रनटाइम Argon2 प्रदान नहीं कर सकता। यह पेज पूरी तरह आपके ब्राउज़र में चलता है: पासवर्ड और हैश कभी आपके डिवाइस को नहीं छोड़ते, और आप कोड पथ (MIT/BSD bcryptjs) का निरीक्षण कर सकते हैं जो public/assets में बंडल है।

public/assets में बंडल की गई BSD-3-Clause bcryptjs लाइब्रेरी के साथ निर्मित। हैशिंग स्थानीय रूप से चलती है; कुछ भी प्रेषित नहीं होता।

अक्सर पूछे जाने वाले प्रश्न

एक ही पासवर्ड हर बार अलग हैश क्यों उत्पन्न करता है?
प्रत्येक हैश के लिए एक यादृच्छिक 128-बिट साल्ट जेनरेट किया जाता है और आउटपुट में एम्बेड किया जाता है। सत्यापनकर्ता साल्ट को हैश से फिर पढ़ता है, इसलिए शुद्धता प्रभावित नहीं होती, लेकिन समान इनपुट कभी समान आउटपुट नहीं देते।
मुझे कौन सा लागत कारक उपयोग करना चाहिए?
इंटरैक्टिव लॉगिन के लिए, 10-12 एक अच्छा डिफ़ॉल्ट है। संग्रहीत क्रेडेंशियल के लिए आप 12-14 चाह सकते हैं। उच्च लागत अधिक सुरक्षित लेकिन धीमी है; वह सबसे बड़ा मान चुनें जो आपका सर्वर प्रति लॉगिन वहन कर सके।
क्या 2026 में bcrypt अभी भी अनुशंसित है?
हाँ। bcrypt व्यापक रूप से तैनात है और 10+ लागत के साथ उपयोग किए जाने पर सुरक्षित माना जाता है। बिल्कुल नए सिस्टम के लिए, मेमोरी-हार्ड Argon2id या scrypt अक्सर पसंद किए जाते हैं, लेकिन bcrypt एक बढ़िया, परीक्षित विकल्प है, विशेष रूप से जहाँ वे उपलब्ध नहीं हैं।
bcrypt SHA-256 से धीमा क्यों है?
वही इसका मुद्दा है। SHA-256 तेज़ होने के लिए डिज़ाइन किया गया है, जो हमलावरों को प्रति सेकंड अरबों अनुमान लगाने देता है। bcrypt की महँगी कुंजी अनुसूची और साल्ट हमलावरों को प्रति अनुमान वास्तविक समय खर्च करने के लिए मजबूर करते हैं, जिससे ऑफ़लाइन हमले अव्यावहारिक हो जाते हैं।
72-बाइट सीमा का मेरे पासवर्ड के लिए क्या अर्थ है?
bcrypt बाइट 72 के बाद सब कुछ अनदेखा करता है। 72 बाइट से लंबे दो पासवर्ड जो समान उपसर्ग साझा करते हैं, समान सत्यापित होंगे। लंबे रहस्यों का समर्थन करने के लिए, उन्हें पहले SHA-256 (hex के रूप में) से हैश करें और डाइजेस्ट को bcrypt करें।
क्या मेरा पासवर्ड सर्वर को भेजा जाता है?
नहीं। सब कुछ बंडल की गई bcryptjs लाइब्रेरी के साथ स्थानीय रूप से आपके ब्राउज़र में चलता है। पेज लोड होने के बाद आप नेटवर्क से डिस्कनेक्ट हो सकते हैं और यह अभी भी काम करेगा।