কোডা হালের "নিখুঁতভাবে পাসওয়ার্ড কীভাবে সংরক্ষণ করবেন" নিবন্ধটিতে দাবি করা হয়েছে:
রেনবো টেবিলের আক্রমণ প্রতিরোধ করতে বিসিক্রিপ্টের অন্তর্নির্মিত লবণ রয়েছে।
তিনি এই কাগজটি উদ্ধৃত করেছেন , যা বলে যে ওপেনবিএসডি এর বাস্তবায়নে bcrypt
:
ওপেনবিএসডি একটি আরকফোর (আরক 4 ব্র্যান্ডম (3)) কী স্ট্রিম থেকে 128-বিট বিক্রিপ্ট লবণ উত্পন্ন করে, কার্নেলটি ডিভাইসের সময় থেকে সংগ্রহ করে এলোমেলো ডেটা সহ।
আমি বুঝতে পারি না এটি কীভাবে কাজ করতে পারে। আমার একটি লবণ সম্পর্কে ধারণা:
- এটি প্রতিটি সঞ্চিত পাসওয়ার্ডের জন্য আলাদা হওয়া দরকার, যাতে প্রতিটিটির জন্য একটি পৃথক রেইনবো টেবিল তৈরি করতে হয়
- এটি অন্য কোথাও সংরক্ষণ করা দরকার যাতে এটি পুনরাবৃত্তিযোগ্য: যখন কোনও ব্যবহারকারী লগ ইন করার চেষ্টা করে, আমরা তাদের পাসওয়ার্ড চেষ্টা করি, একইভাবে লবণ এবং হ্যাশ প্রক্রিয়াটি পুনরায় পুনরুদ্ধার করি যখন আমরা মূলত তাদের পাসওয়ার্ড সংরক্ষণ করি এবং তুলনা করি
আমি যখন ব্রিসিপ্টের সাথে ডিভাইস (একটি রেলস লগইন ম্যানেজার) ব্যবহার করি তখন ডাটাবেসে কোনও লবণের কলাম থাকে না, তাই আমি বিভ্রান্ত হয়ে পড়েছি। যদি লবণ এলোমেলো হয় এবং কোথাও সংরক্ষণ করা হয় না, আমরা কীভাবে নির্ভরযোগ্যভাবে হ্যাশিং প্রক্রিয়াটির পুনরাবৃত্তি করতে পারি?
সংক্ষেপে, কীভাবে Bcrypt বিল্ট-ইন লবণ থাকতে পারে ?