এটি সিস্টেম.সিকিউরিটি.ক্রিপ্টোগ্রাফি.এমডি 5 ব্যবহার করে খুব সহজ :
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
return md5.ComputeHash(stream);
}
}
(আমি বিশ্বাস করি যে আসলে ব্যবহৃত MD5 বাস্তবায়ন বিন্যস্ত হতে হবে না, কিন্তু আমি সম্ভবত এখনও এত যাহাই হউক না কেন করতে চাই।)
পরবর্তী ফলাফলগুলি কীভাবে তুলনা করবেন তা আপনার উপর নির্ভর করে; আপনি উদাহরণস্বরূপ বাইট অ্যারে বেস 64 এ রূপান্তর করতে পারেন, বা বাইটগুলি সরাসরি তুলনা করতে পারেন। (কেবল সচেতন হন যে অ্যারেগুলি ওভাররাইড হয় নাEquals
। বেস 64 ব্যবহার করা সঠিক হওয়া সহজ, তবে আপনি যদি হ্যাশগুলির তুলনা করতে আগ্রহী হন তবে খানিকটা কম দক্ষ))
যদি আপনার স্ট্রিং হিসাবে হ্যাশ উপস্থাপন করতে হয়, আপনি এটি ব্যবহার করে এটিকে হেক্সে রূপান্তর করতে পারেন BitConverter
:
static string CalculateMD5(string filename)
{
using (var md5 = MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
var hash = md5.ComputeHash(stream);
return BitConverter.ToString(hash).Replace("-", "").ToLowerInvariant();
}
}
}