سلام
من میخوام از رشته ای مثل "hojjat" یک عدد بدست بیارم عددش مهم نیست فقط میخوام همیشه یکسان باشه ایا تابعی چیزی داره؟؟
سلام
من میخوام از رشته ای مثل "hojjat" یک عدد بدست بیارم عددش مهم نیست فقط میخوام همیشه یکسان باشه ایا تابعی چیزی داره؟؟
راهی که به ذهن من می رسه : حروفشو جدا کنید. کد اسکی حروف رو جمع کنید .یک عددی به دست میاد که همیشه ثابته .
من واسه تبدیل قفل نرم از روی سریال cpu میخوام بنابراین اگر هر دفعه ی چیزی بده نمیشه
در کل این تابع هش چکار میکنه؟
از این دی ال ال ضمیمه استفاده کن
حجت جان فکر کنم منظور دوستان رو بد متوجه شدی
چیزی که به درد شما می خوره همین;()hojjat".GetHashCode" است و همیشه مقدار یکسان میاد
یعنی امکان نداره یک بار یک چیز دیگه بدست بیاد
منظور دوستمون از اینکه ممکنه دو تا رشته کد یکسان داشته باشند اینه که مثلا ممکنه ;()Alireza".GetHashCode" هم همون عددی رو برگردونه که ;()hojjat".GetHashCode" بر می گردونه
که اینم احتمالش اینقدر کمه که قابل چشم پوشیه و در کار شما خیلی اهمیتی نداره
می تونی از این تابع هم استفاده کنی که مشکل GetHashCode رو نداره و امکان نداره مثلا خروجی Alireza با خروجی Hojjat یکی باشه و حتی خروجی "HOJJAT" با "hojjat" نیز فرق می کنه:
string GetAsc(string Input)
{
char[] AllChar = Input.ToCharArray();
string OutPut = "";
foreach (char x in AllChar)
{
OutPut += Convert.ToInt16(x);
}
return OutPut;
}
ولی شخصا پیشنهاد می کنم از همون GetHashCode استفاده کنی چون مشکل این تابع اینه که عدد ممکنه خیلی بزرگ بشه و حتی توی متغیر Long جا نشه