PDA

View Full Version : نحوه حساب کردن Cheksum32 ؟!



Reza-HNA
چهارشنبه 30 مهر 1393, 19:31 عصر
سلام به همگی.:افسرده:
من دارم برای یک نوع خاصی از فایل های یک ویرایشگر مینویسم.فایل رو کلا آنالیز کردم و آفست هاش رو شناسایی کردم ولی فهمیدم که فایل Cheksum داره و اگر که مقدار چکسام رو در همون فایل ننویسم اون فایل دیگه قابل استفاده نیست مگر اینکه اینطوری و با استفاده از Hex Workshop چک سام رو حساب کنم و همون جا بنویسمش.
عکس:

http://barnamenevis.org/attachment.php?attachmentid=124714&d=1413720529
(من میخوام مثل عکس یه قسمت از رشته رو بدم و چک سامش رو بگیرم)

حالا میخوام بدونم این الگوریتم چطوریه و چطوری باید حسابش کرد مثلا یه رشته بهش بدم بگه چک سام 32ـــش چقدره دقیقا مثل کاری که Hex Workshop داره انجام میده.
در ضمن من برای خوندن فایل از این کد استفاده میکنم(نتیجش رشته hex دقیقا همون چیزیه که من توی HexWorkshop دارم):
Dim hex As String = String.Join(" ", IO.File.ReadAllBytes("Masire FIle").Select(Function(b) b.ToString("X2")).ToArray)



توی انجمن VB که کسی جوابمو نداد امیدوارم انجا حداقل یکی یه کمک هرچند کوچیک کنه :افسرده:
مشکلی با C# ندارم میتونم تبدیلش کنم به وی بی :لبخند:

gerdioz
پنج شنبه 01 آبان 1393, 10:58 صبح
فکر کنم بتونه بهت کمک کنه

using System.IO;
using System.Security.Cryptography;

private static string GetChecksum(string file)
{
using (FileStream stream = File.OpenRead(file))
{
SHA256Managed sha = new SHA256Managed();
byte[] checksum = sha.ComputeHash(stream);
return BitConverter.ToString(checksum).Replace("-", String.Empty);
}
}


http://stackoverflow.com/questions/1177607/what-is-the-fastest-way-to-create-a-checksum-for-large-files-in-c-sharp