আমি এমন একটি আলোচনার মুখোমুখি হয়েছি যেখানে আমি জানতে পেরেছিলাম যে আমি যা করছিলাম তা আসলে পাসওয়ার্ড সল্টিং নয় বরং সেগুলিতে গোলমরিচ করে দেওয়া ছিল এবং এর পর থেকে আমি উভয়ই এই জাতীয় ফাংশন দিয়ে শুরু করেছি:
hash_function($salt.hash_function($pepper.$password)) [multiple iterations]
নির্বাচিত হ্যাশ অ্যালগরিদম উপেক্ষা করা (আমি এটি সল্ট এবং মরিচগুলির আলোচনার জন্য চাই এবং নির্দিষ্ট অ্যালগোরিদম নয় বরং আমি একটি সুরক্ষিত ব্যবহার করছি), এটি কি একটি নিরাপদ বিকল্প বা আমার কিছু আলাদা করা উচিত? শর্তগুলির সাথে অপরিচিত যারা:
একটি লবণ একটি এলোমেলোভাবে উত্পন্ন মান যা পাসওয়ার্ড ক্র্যাক করার জন্য হ্যাশ টেবিল ব্যবহার করা অসম্ভব করে তোলে তা জন্য সাধারণত ডিজাইন করা ডেটাবেজে স্ট্রিং সহ সংরক্ষণ করা হয়। প্রতিটি পাসওয়ার্ডের নিজস্ব লবণ থাকায় এগুলি ক্র্যাক করার জন্য তাদের অবশ্যই পৃথক পৃথকভাবে জবরদস্তি হতে হবে; তবে পাসওয়ার্ড হ্যাশের সাথে ডাটাবেজে নুন যেমন সংরক্ষণ করা হয়, একটি ডাটাবেস আপোস করার অর্থ উভয় হারাতে হবে।
একটি গোলমরিচ হ'ল সাইট-প্রশস্ত স্ট্যাটিক মান যা ডাটাবেস থেকে আলাদাভাবে সঞ্চিত হয় (সাধারণত অ্যাপ্লিকেশনটির উত্স কোডে হার্ড-কোডড) যা গোপনীয় intended এটি ব্যবহার করা হয় যাতে ডাটাবেসের কোনও আপস করে পুরো অ্যাপ্লিকেশনটির পাসওয়ার্ড টেবিলটিকে জোর-জবরদস্তি না করে।
আমি কি অনুপস্থিত এবং আমার ব্যবহারকারীর সুরক্ষা রক্ষা করার জন্য আমার পাসওয়ার্ডগুলি নষ্ট করে দিচ্ছি এমন কিছু আছে? এইভাবে এটি করার জন্য কোনও সুরক্ষার ত্রুটি আছে?
দ্রষ্টব্য: আলোচনার উদ্দেশ্যে ধরে নিন যে অ্যাপ্লিকেশন এবং ডাটাবেস পৃথক মেশিনে সংরক্ষণ করা হয়েছে, পাসওয়ার্ডগুলি ভাগ করবেন না ইত্যাদি তাই ডাটাবেস সার্ভারের লঙ্ঘনটি স্বয়ংক্রিয়ভাবে অ্যাপ্লিকেশন সার্ভারের লঙ্ঘনকে বোঝায় না।