bcrypt के लिए मॉड्यूलर क्रिप्ट प्रारूप में शामिल हैं
$2$
,$2a$
या$2y$
हैशिंग एल्गोरिथम और प्रारूप की पहचान करना- लागत पैरामीटर को दर्शाने वाला दो अंकों का मान, उसके बाद
$
- एक 53 वर्ण लंबा बेस-64-एन्कोडेड मान (वे वर्णमाला
का उपयोग करते हैं।
,/
,0
-9
,ए
-जेड
,ए
-जेड
यह मानक बेस 64 एन्कोडिंग से अलग है वर्णमाला) से मिलकर बनता है:- नमक के 22 अक्षर (प्रभावी रूप से 132 डीकोडेड बिट्स में से केवल 128 बिट)
- एन्क्रिप्टेड आउटपुट के 31 कैरेक्टर (प्रभावी रूप से 186 डीकोडेड बिट्स में से केवल 184 बिट्स)
इस प्रकार कुल लंबाई क्रमशः 59 या 60 बाइट्स है।
जैसा कि आप 2a प्रारूप का उपयोग करते हैं, आपको 60 बाइट्स की आवश्यकता होगी। और इस प्रकार MySQL के लिए मैं चार (60) बाइनरी
या BINARY(60)
(देखें द _bin और बाइनरी संयोजन
अंतर के बारे में जानकारी के लिए)।
चार
बाइनरी सुरक्षित नहीं है और समानता केवल बाइट मान पर नहीं बल्कि वास्तविक संयोजन पर निर्भर करती है; सबसे खराब स्थिति में A
a
. के बराबर माना जाता है . देखें द _bin
और बाइनरी
संयोजन
अधिक जानकारी के लिए।