PDA

View Full Version : خروجی های متفاوت SHA256 با ورودی های مشابه



mmbguide
یک شنبه 23 دی 1397, 20:31 عصر
سلام

من با استفاده از کدهای زیر یک رشته رو کد میکنم.

System.Security.Cryptography.SHA256 regMD5 = System.Security.Cryptography.SHA256.Create();
byte[] regString = System.Text.Encoding.UTF32.GetBytes(this.txtRegCod e.Text);
byte[] hash = regMD5.ComputeHash(regString);


for (int i = 0; i < hash.Length; i++)
{
FinalGeneratedCode = FinalGeneratedCode + hash[i].ToString();
}


حالا جالبه که این کد رو در دوتا برنامه استفاده میکنم ولی نمیدونم چرا خروجی FinalGeneratedCode متفاوته. رشته ای که باید کد بشه در هر دو سیستم مشابه هستند ولی تبدیلشون متفاوت میشه. چطور میشه تبدیلات مشابه ای داشت. میشه بگید اشتباه کارم کجاست؟

تشکر

barnamenevisjavan
یک شنبه 23 دی 1397, 23:03 عصر
سلام

من با استفاده از کدهای زیر یک رشته رو کد میکنم.

System.Security.Cryptography.SHA256 regMD5 = System.Security.Cryptography.SHA256.Create();
byte[] regString = System.Text.Encoding.UTF32.GetBytes(this.txtRegCod e.Text);
byte[] hash = regMD5.ComputeHash(regString);


for (int i = 0; i < hash.Length; i++)
{
FinalGeneratedCode = FinalGeneratedCode + hash[i].ToString();
}


حالا جالبه که این کد رو در دوتا برنامه استفاده میکنم ولی نمیدونم چرا خروجی FinalGeneratedCode متفاوته. رشته ای که باید کد بشه در هر دو سیستم مشابه هستند ولی تبدیلشون متفاوت میشه. چطور میشه تبدیلات مشابه ای داشت. میشه بگید اشتباه کارم کجاست؟

تشکر
سلام فک نکنم کد مشکل داشته باشه چیزی که به ذهنم میاد این هست که تو یه سیستم مثلا شما حرف ی رو میزنی و در سیستم دیگه همین حرف ی منتهی بدلیل نصب نبودن فونت های مناسب ی عربی وارد میشه (زیرش 2 تا نطقه داره) فک کنم همین باعث وجود اشکال میشه با ورودی عدد تست کنید ببینید نتیجه یکسانه یا ن

cmsdqq2
دوشنبه 24 دی 1397, 16:29 عصر
کد رو دقیقا نگاه نکردم ولی برای تست میتونید ورودی رو زمان بذارید یا عدد بدید.

123456789

و حالا run کنید.

mmbguide
دوشنبه 24 دی 1397, 17:24 عصر
سلام

ممنون از پاسختون. البته نکته ای که در مورد کاراکتر "ی" فارسی بود رو نمیدونستم. ولی بطور کل به دلیل اینکه برنامه من متغیرهای بسیار زیادی داشت و خیلی ها از نظر اسمی مشابه به هم بودند متوجه شذم جایی که رشته باید تولید بشه و به تابع کدگذاری ارسال بشه یک متغیر اشتباهی تعریف شده بود.

ممنون