MongoDB শেলে hex_md5() ফাংশন ব্যবহার করে পাসওয়ার্ড বা অন্য স্ট্রিংয়ের MD5 হ্যাশ জেনারেট করে ডকুমেন্টে সংরক্ষণ করা যায়।
নমুনা ডেটা তৈরি করা
addMd5HashValueDemo কালেকশনে দুটি ইউজার ডকুমেন্ট ইনসার্ট করি।
> db.addMd5HashValueDemo.insertOne({"UserName":"Adam","UserPassword":"Adam123456"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6a4c66d78f205348bc619") }
> db.addMd5HashValueDemo.insertOne({"UserName":"Chris","UserPassword":"Chris_121#"});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd6a4e46d78f205348bc61a") }
সকল ডকুমেন্ট দেখানো
> db.addMd5HashValueDemo.find();
আউটপুট:
{ "_id" : ObjectId("5cd6a4c66d78f205348bc619"), "UserName" : "Adam", "UserPassword" : "Adam123456" }
{ "_id" : ObjectId("5cd6a4e46d78f205348bc61a"), "UserName" : "Chris", "UserPassword" : "Chris_121#" }
MD5 হ্যাশ জেনারেট করে সংরক্ষণ করা
forEach দিয়ে প্রতিটি ডকুমেন্টের পাসওয়ার্ডের MD5 হ্যাশ বের করে Value ফিল্ডে সেভ করি:
> db.addMd5HashValueDemo.find().forEach(function(documentPass) {
documentPass.Value = hex_md5(documentPass.UserPassword);
db.addMd5HashValueDemo.save(documentPass);
});
ফলাফল দেখানো
> db.addMd5HashValueDemo.find();
আউটপুট:
{ "_id" : ObjectId("5cd6a4c66d78f205348bc619"), "UserName" : "Adam", "UserPassword" : "Adam123456", "Value" : "6523857c2bf79b63fd5fa0322575f7be" }
{ "_id" : ObjectId("5cd6a4e46d78f205348bc61a"), "UserName" : "Chris", "UserPassword" : "Chris_121#", "Value" : "3391ccbe33624258cafa23aa50301615" }
সুরক্ষা নোট: MD5 ক্রিপ্টোগ্রাফিক্যালি সিকিউর নয়। প্রোডাকশনে পাসওয়ার্ড হ্যাশিংয়ের জন্য bcrypt, scrypt, বা Argon2 ব্যবহার করুন। MongoDB শেলের hex_md5() শুধু ডেমো/লিগ্যাসি কাজের জন্য।