Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

डेटाबेस में बीक्रिप्ट हैशेड पासवर्ड को स्टोर करने के लिए मुझे किस कॉलम प्रकार/लंबाई का उपयोग करना चाहिए?

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 और बाइनरी संयोजन अधिक जानकारी के लिए।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL इंडेक्स बनाम InnoDB इंडेक्स - अंतर को समझना

  2. डेटाबेस में MySQL शो इंडेक्स

  3. SQLSTATE [HY000] [1045] CakePHP का उपयोग कर उपयोगकर्ता 'उपयोगकर्ता नाम' @ 'लोकलहोस्ट' के लिए प्रवेश निषेध

  4. फेडोरा 14 पर MySQL रिलेशनल डेटाबेस का उपयोग करें

  5. MySQL में किसी संख्या को Octal में बदलने के 2 तरीके