जो आप यहां देख रहे हैं वह एक पासवर्ड हैश से अधिक है, उन तारों में हैश के बारे में बहुत सारे मेटाडेटा हैं। Bcrypt के संदर्भ में पूरी स्ट्रिंग को bcrypt हैश माना जाएगा। यहां यह शामिल है:
$ bcrypt में delimiter है।
$ 2a $ बीसीक्रिप्ट एल्गोरिदम का उपयोग किया गया था।
$ $ उपयोग किया जाने वाला लागत कारक है। यही कारण है कि ब्रशिप हैश स्टोर करने के लिए बहुत लोकप्रिय है। प्रत्येक हैश में इसकी जटिलता/लागत है, जिसे आप इस हेश को उत्पन्न करने के लिए कंप्यूटर को कितनी जल्दी ले जाएंगे। यह संख्या निश्चित रूप से कंप्यूटर की गति के सापेक्ष है, इसलिए कंप्यूटरों को वर्षों में तेजी से और तेज़ हो जाता है, इसलिए 10 की लागत के साथ हैश उत्पन्न करने में कम और कम समय लगेगा। इसलिए अगले वर्ष आप अपनी लागत 11 तक बढ़ाएं, फिर 12 ... 13 ... और इतने पर। यह आपके भविष्य के हैंश को मजबूत बनाए रखने की अनुमति देता है जबकि आपके पुराने हैंश अभी भी वैध में रखते हैं। बस ध्यान दें कि मूल स्ट्रिंग को रीहाश किए बिना आप हैश की लागत को नहीं बदल सकते हैं।
$ QyrjMQf ... नमक और हैश का संयोजन है। यह एक बेस 64 एन्कोडेड स्ट्रिंग है।
पहले 22 वर्ण नमक हैं।
शेष वर्ण 2 ए एल्गोरिदम, 10 की लागत, और दिए गए नमक के साथ उपयोग किए जाने वाले हैंश हैं। नमक का कारण यह है कि हमलावर बीआरक्रिप्ट हश की गणना नहीं कर सकता है ताकि उन्हें उत्पन्न करने की लागत का भुगतान करने से बच सकें।
वास्तव में यह अपने मूल सवाल का जवाब है: कारण हैश अलग हैं क्योंकि अगर वे एक ही थे आप किसी भी समय bcrypt स्ट्रिंग $2a$10$QyrjMQfjgGIb4ymtdKQXI.WObnWK0/CzR6yfb6tlGJy0CsVWY0GzO
क्या आप जानते हैं पासवर्ड abcd
होगा देखा पता होगा। तो आप केवल हैश के डेटाबेस स्कैन कर सकते हैं और उस हैश को देखकर एबीसीडी पासवर्ड वाले सभी उपयोगकर्ताओं को तुरंत ढूंढ सकते हैं।
आप इसे bcrypt के साथ नहीं कर सकते क्योंकि $2a$10$dQSPyeQmZCzVUOXQ3rGtZONX6pwvnKSBRmsLnq1t1CsvdOTAMQlem
भी abcd
है। और वहां कई सारे हैंश हैं जो bcrypt('abcd')
का परिणाम होंगे। यह असंभव के बगल में एबीसीडी पासवर्ड के लिए डेटाबेस स्कैनिंग करता है।
शायद (उम्मीद है) पासवर्ड [नमकीन] (http://en.wikipedia.org/wiki/Salt_ (क्रिप्टोग्राफी)) है? –
[नमस्कार!] (Http://en.wikipedia.org/wiki/Salt_%28cryptography%29) –
यह व्यवहार डिज़ाइन द्वारा _emphatically_ है। – SLaks