कोडा हेल का लेख "हाउ टू सेफली स्टोर ए पासवर्ड" का दावा है कि:
bcrypt में रेनबो टेबल हमलों को रोकने के लिए अंतर्निहित लवण हैं।
वह इस पत्र का हवाला देते हैं , जो कहता है कि ओपनबीएसडी के कार्यान्वयन में bcrypt
:
OpenBSD एक आर्कफॉर (arc4random (3)) कुंजी स्ट्रीम से 128-बिट bcrypt नमक उत्पन्न करता है, यादृच्छिक डेटा के साथ वरीयता प्राप्त कर्नेल डिवाइस के समय से एकत्र करता है।
मुझे समझ नहीं आता कि यह कैसे काम कर सकता है। एक नमक की मेरी अवधारणा में:
- इसे प्रत्येक संग्रहीत पासवर्ड के लिए अलग-अलग होना चाहिए, ताकि प्रत्येक के लिए एक अलग इंद्रधनुष तालिका बनानी पड़े
- इसे कहीं संग्रहीत करने की आवश्यकता है ताकि यह दोहराए जा सके: जब कोई उपयोगकर्ता लॉग इन करने का प्रयास करता है, तो हम उनका पासवर्ड लेने का प्रयास करते हैं, उसी नमक-और-हैश प्रक्रिया को दोहराते हैं, जब हमने मूल रूप से अपना पासवर्ड संग्रहीत किया था, और तुलना करें
जब मैं bcrypt के साथ Devise (एक रेल लॉगिन प्रबंधक) का उपयोग कर रहा हूं, तो डेटाबेस में कोई नमक स्तंभ नहीं है, इसलिए मैं भ्रमित हूं। यदि नमक यादृच्छिक है और कहीं भी संग्रहीत नहीं है, तो हम मज़बूती से हैशिंग प्रक्रिया को कैसे दोहरा सकते हैं?
संक्षेप में, bcrypt में अंतर्निहित लवण कैसे हो सकते हैं ?