نوشته شده توسط
pure_love
میخام کد md5 یا حالا hash به عدد تبدیل کنم
MD5 یک hash ئه 128 بیتی (16 بایتی) است که اندازه بزرگی داره، لذا اگر بخواهید که به یک عدد 128 بیتی تبدیل بشه، در انواع داده ای صحیح عمومی که بزرگترین شون 64 بیتی است جا نخواهد شد. انواع داده ای بزرگتری مثل BigInteger هست ولی یک نوع داده عمومی نیست.
می توانید hash رو بصورت رشته ای نگهداری کنید. به همین دلیل معمولا hash رو بصورت یک رشته مبنای 16 نمایش میدن، نه عدد.
var md5 = System.Security.Cryptography.MD5.Create();
var input = Encoding.UTF8.GetBytes("This is a sample");
var hash = md5.ComputeHash(input);
var output = new StringBuilder();
for (var i = 15; i >= 0; i--)
{
output.Append(hash[i].ToString("X2"));
}
MessageBox.Show(output.ToString());
اگر بخواهید حتما عدد باشه از BigInteger استفاده کنید، البته باید به System.Numerics.dll در پروژه تون رفرنس بدهید :
var md5 = System.Security.Cryptography.MD5.Create();
var input = Encoding.UTF8.GetBytes("This is a sample");
var hash = md5.ComputeHash(input);
var bigInteger = new System.Numerics.BigInteger(hash);
MessageBox.Show(bigInteger.ToString());