windows क्या WinAPi का bcrypt.h वास्तव में bcrypt हैशिंग का समर्थन करता है?




windows-7 windows-vista (2)

BCrypt एपीआई जेनेरिक होते हैं और विभिन्न क्रिप्टोग्राफ़िक हैश एल्गोरिदम का समर्थन करते हैं, लेकिन bcrypt उनमें से एक नहीं है। बी प्रीफ़िक्स पुराने एपीआई और अगली पीढ़ी के बीच भेद करने का एक तरीका है।

यह एक अजीब सवाल की तरह लग सकता है, और यह थोड़ा अजीब लगता है कि मुझे वास्तव में यह पूछना है, लेकिन कुछ घंटे खर्च करने के बाद एमएसडीएन दस्तावेज़ीकरण को bcrypt रूटीन के लिए देखा गया जो कि विस्टा में जोड़े गए थे, मैंने लगभग निष्कर्ष पर पहुंचा कि कोई वास्तविक bcrypt समर्थन नहीं है!

विकिपीडिया के अनुसार:

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

हालांकि, MSDN पर प्रलेखन से, "बीक्रिप्ट" लाइब्रेरी वास्तव में एन्क्रिप्शन और हैशिंग के लिए एक सामान्य अंतरफलक है। आपको "एल्गोरिथ्म प्रदाता" के लिए एक बीसीआरप्पट ओपन एल्गोरिथ्मप्रॉवायर फ़ंक्शन के माध्यम से एक संभाल प्राप्त करना होगा, जिसमें से चुनने के लिए कई निर्मित एल्गोरिदम हैं। लेकिन शब्द "बोफिश" सूची में कहीं भी नहीं दिखाई देता है।

तो क्या मुझे कुछ याद आ रहा है? क्या मैं यह गलत पढ़ रहा हूं? या क्या विंडोज़ की "बीक्रीप्ट" पुस्तकालय वास्तव में बीसीआरपीटी का समर्थन नहीं करता है ?


एमएसडीएन के संदर्भ में, बीसीआरिप " बेस्टक्रिप्ट " का एक लघुरूप है, लेकिन उसके लिए पीआर का नाम है:

क्रिप्टोग्राफी एपीआई: अगली पीढ़ी (सीएनजी)

इसे bcrypt.dll में लागू किया bcrypt.dll

बेस्टक्रिप्ट / बीसीरीप्ट / सीएनजी पुराने क्रिप्टोएपीआई के उत्तराधिकारी हैं

माइक्रोसॉफ्ट धीरे धीरे अपनी साइट से "बेस्टक्रिप्ट" के संदर्भ निकाल रहा है, लेकिन फिर भी आप इसे कुछ पृष्ठों में देख सकते हैं जैसे:

SHA256 सीएनजी कक्षा

यह एल्गोरिथ्म केवल हैशिंग के लिए है और किसी भी एन्क्रिप्शन या डिक्रिप्शन प्रदान नहीं करता है। यह बीसीआरिप (बेस्टक्रिप्ट) परत सीएनजी का उपयोग करता है

यह (मेरे लिए वैसे भी) दिलचस्प है कि। NET ढांचे आम तौर पर आप प्रत्येक प्रकार के क्रिप्टो एल्गोरिथ्म के लिए तीन कार्यान्वयन प्रदान कर सकते हैं। उदाहरण के लिए, SHA2 hashing के लिए, वहाँ है:

  • SHA256 प्रबंधित : एक कार्यान्वयन प्रबंधित कोड में विशुद्ध रूप से लिखा गया है
  • SHA256CryptoServiceProvider : मूल क्रिप्टोग्राफिक सेवा प्रदाता (सीएसपी) कार्यान्वयन के आसपास एक आवरण
  • SHA256Cng : क्रिप्टोग्राफ़ी अगली जनरल (सीएनजी) कार्यान्वयन के आसपास एक आवरण

लघु संस्करण

नहीं, bcrypt लिए bcrypt छोटा है और, नहीं, यह बीक्रीप्ट (ब्लफफ़िश क्रिप्ट) पासवर्ड हैशिंग का समर्थन नहीं करता है।





bcrypt