Bcrypt म्हणजे काय?
Bcrypt हे पासवर्ड-हॅशिंग फंक्शन आहे जे Niels Provos आणि David Mazières यांनी Blowfish सिफरच्या आधारावर डिझाइन केले. MD5 किंवा SHA-256 सारख्या जलद डायजेस्टच्या विपरीत, bcrypt जाणूनबुजून मंद आणि संगणकीयदृष्ट्या महाग आहे — यामुळे चोरीलेल्या पासवर्ड hash वर ब्रूट-फोर्स हल्ले अव्यवहार्य बनतात. Bcrypt प्रति पासवर्ड आपोआप एक रँडम सॉल्ट जनरेट करते, त्यामुळे समान पासवर्ड वेगवेगळे hash तयार करतात.
Bcrypt कसे कार्य करते?
Bcrypt अल्गोरिदम पूर्णपणे तुमच्या ब्राउझरमध्ये चालते. पायरीनुसार प्रक्रिया येथे स्पष्ट केली आहे:
- तुमचा पासवर्ड UTF-8 बाइट्स म्हणून एन्कोड होतो आणि bcrypt की शेड्यूलमध्ये दिला जातो, जो पासवर्ड आणि सॉल्ट वापरून Blowfish सिफरचे ४,१८४-बाइट P-array आणि S-boxes प्रारंभ करते.
- एक रँडम १२८-बिट सॉल्ट जनरेट होते. सॉल्ट की शेड्यूलमध्ये मिसळला जातो जेणेकरून प्रत्येक अद्वितीय सॉल्ट समान पासवर्डसाठीही पूर्णपणे भिन्न hash तयार करेल.
- की शेड्यूल 2^cost राउंडसाठी (उदा., कॉस्ट १० वर 2^10 = १,०२४ पुनरावृत्ती) पुनरावृत्त होते. प्रत्येक पुनरावृत्ती सॉल्ट आणि P-array एंट्री पुन्हा एन्क्रिप्ट करते, ज्यामुळे कॉस्ट वाढल्यानुसार संगणना हळू होते.
- अंतिम आउटपुट
$2b$<cost>$<salt><hash>फॉरमॅटमध्ये ६०-अक्षरांची स्ट्रिंग असते, जिथे कॉस्ट शून्य-पॅडेड (उदा., १०), सॉल्ट २२ Base64 अक्षरे, आणि hash ३१ Base64 अक्षरे असतात. - सत्यापनासाठी, समान अल्गोरिदम उमेदवार पासवर्ड आणि साठवलेल्या hash मधून काढलेल्या सॉल्टसह पुन्हा चालवले जाते. जर व्युत्पन्न hash साठवलेल्या hash शी जुळला, तर पासवर्ड बरोबर आहे.
मी कोणता कॉस्ट फॅक्टर वापरावा?
कॉस्ट फॅक्टर म्हणजे पुनरावृत्ती संख्येचा लॉगरिथम — कॉस्ट १० म्हणजे 2^10 = १,०२४ राउंड, कॉस्ट १२ म्हणजे ४,०९६ राउंड. तुमच्या सुरक्षा गरजा आणि हार्डवेअरनुसार निवडा:
- कॉस्ट ४-६ (१६-६४ राउंड) — फक्त डेव्हलपमेंट आणि चाचणीसाठी. प्रॉडक्शन वापरासाठी खूप जलद; किमान संरक्षण प्रदान करते.
- कॉस्ट ८ (२५६ राउंड) — गैर-गंभीर अनुप्रयोगांसाठी किमान पातळी. आधुनिक हार्डवेअरवर सुमारे ६ms.
- कॉस्ट १० (१,०२४ राउंड) — सध्याची शिफारस केलेली आधार रेषा. सुमारे २५ms लागतो. बहुतेक वेब अनुप्रयोगांसाठी योग्य.
- कॉस्ट १२ (४,०९६ राउंड) — अॅडमिन पोर्टल, आर्थिक प्रणाली आणि उच्च-सुरक्षा अनुप्रयोगांसाठी शिफारस. सुमारे १००ms लागतो.
- कॉस्ट १४ (१६,३८४ राउंड) — उच्च सुरक्षा. सुमारे ४००ms लागतो. मास्टर पासवर्ड, एन्क्रिप्शन की, किंवा जेव्हा लॉगिन विलंब स्वीकार्य असेल तेव्हा वापरा.
हे bcrypt जनरेटर का वापरावे?
- तुमची गोपनीयता संरक्षित आहे — प्रत्येक पासवर्ड तुमच्या ब्राउझरमध्ये स्थानिकरित्या hash होतो आणि कोणताही डेटा तुमच्या डिव्हाइसच्या बाहेर जात नाही.
- तुम्हाला दोन्ही मोड एकत्र मिळतात: नवीन hash जनरेट करा किंवा विद्यमान hash सत्यापित करा पृष्ठ न बदलता.
- कॉस्ट फॅक्टर ४ (जलद) पासून १५ (अत्यंत मंद) पर्यंत समायोजित करता येतो, जेणेकरून तुम्ही तुमच्या अनुप्रयोगाच्या सुरक्षा गरजा पूर्ण करू शकता.
- Hash प्रमाणित
$2b$फॉरमॅट वापरतात जे प्रत्येक प्रमुख भाषा आणि फ्रेमवर्कशी सुसंगत आहे.
Bcrypt चे सामान्य उपयोग कोणते आहेत?
उद्योगात पासवर्ड स्टोरेज आणि सत्यापनासाठी Bcrypt मोठ्या प्रमाणावर वापरले जाते:
- वेब अनुप्रयोग प्रमाणीकरण — डेटाबेसमध्ये वापरकर्ता पासवर्ड hash साठवणे जेणेकरून प्लेनटेक्स्ट पासवर्ड कधीही जतन केले जात नाहीत.
- API की हॅशिंग — API गुप्तता साठवण्यापूर्वी hash करणे, जेणेकरून डेटाबेस भंग झाल्यास वैध क्रेडेन्शियल्स लीक होणार नाहीत.
- मायग्रेशन ऑडिटिंग — जुन्या प्रणालीतील लिगसी पासवर्ड hash ऑथ लेयर अपग्रेड केल्यानंतरही वापरकर्त्यांना प्रमाणित करू शकतात का हे तपासणे.
Bcrypt hash कसा दिसतो?
पासवर्ड hunter2 कॉस्ट फॅक्टर १० ने hash केल्यावर $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy सारखी स्ट्रिंग मिळते. फॉरमॅटचे विभाजन: $2b$ (अल्गोरिदम आवृत्ती), १० (कॉस्ट फॅक्टर), $, नंतर २२ अक्षरे सॉल्ट आणि ३१ अक्षरे hash, सर्व Base64-एन्कोडेड. रँडम सॉल्टमुळे समान पासवर्डने प्रत्येक वेळी वेगळा hash तयार होतो.
हे bcrypt जनरेटर पूर्णपणे तुमच्या ब्राउझरमध्ये शुद्ध-JavaScript अंमलबजावणी वापरून चालते. पासवर्ड साठवण्यापूर्वी hash करा, विद्यमान hash सत्यापित करा, आणि कॉस्ट फॅक्टर तुमच्या सुरक्षा गरजांनुसार समायोजित करा — एक बाइटही सर्व्हरवर न पाठवता.