PDA

View Full Version : سوال: این کد هشینگ چطوری غیرقابل بازگشت میشه



علیرضا5
شنبه 08 اردیبهشت 1397, 23:31 عصر
سلام دوستان بنده در مورد رمزگذاری اطلاعات چند تا سوال داشتم

اول اینکه
بنده کلمه سلام رو هش می کنم میشه این

78903C575B0DDA53C4A7644A2DD36D0E

خوب هکر وقتی این ابرغول رو 78903C575B0DDA53C4A7644A2DD36D0E ببینه میفهمه کلمه هش شده سلام بوده خوب (این که دیگه نمیشه غیرقابل بازگشت)

دوم اینکه
اگه خودمون یک الگوریتم بنویسیم که مثلا سلام رو تبدیل کنه به 5F5B05B5054DGT آیا این بهتر نیست
خوب الگوریتمش لااقل فقط دست خودمونه و مثل تکنیک های رایج نیست که بتونن ازش سردر بیارن و کسی هم نمیدونه این 5F5B05B5054DGT یعنی چی

سوم اینکه
من میخوام نه تنها پسورد کاربران بلکه همه اطلاعات سایت و همه پستها و غیره رو به صورت رمز گذاری ذخیره کنم که در واقع باید قابل بازیابی هم باشن
اگه هش یا هر روش دیگه ای عملکردش غیرقابل بازگشته من چطوری اینکار رو انجام بدم

Tekyegah
یک شنبه 09 اردیبهشت 1397, 21:03 عصر
سلام علیرضا جان

من برای خودم یه الگوریتم نوشتم ( همون چیزی که خودت تو حالت 2 گفتی )

اگه بخوام راهنمایی کنم اینطوری هست که :

سلام = س ل ا م
کد اسکی = س
کد اسکی = ل
کد اسکی = ا
کد اسکی = م
شما الان اعدادی دارید مثلا به این شکل : 1234123412341234

هر 4 تاش واسه یه کارکتر هست .

میتونید باهاش هر کاری کنید ، تو یه ضریب ضربش کنید بعد جمع ببنیدش با یه عدد دیگه و................

واسه برگردوندنش کافیه مراحل رو از آخر به اول برگردید .

فقط به جای کد ASC از CHR استفاده کنید .

علیرضا5
یک شنبه 09 اردیبهشت 1397, 23:05 عصر
ممنونم Tekyegah (http://barnamenevis.org/member.php?121173-Tekyegah) جان

یعنی به نظر شما این هش مش کشکه

ضمنا من از طریق replace کردن بلدم اگه کد بهتری دارین لطف بفرمایید



string g = "سلام";
g = g.Replace("س", "t4g1");
g = g.Replace("ل", "t65d5");
g = g.Replace("ا", "t5g6");
g = g.Replace("م", "dc5b");

Mahmoud.Afrad
دوشنبه 10 اردیبهشت 1397, 13:56 عصر
سلام علیرضا جان

من برای خودم یه الگوریتم نوشتم ( همون چیزی که خودت تو حالت 2 گفتی )

اگه بخوام راهنمایی کنم اینطوری هست که :

سلام = س ل ا م
کد اسکی = س
کد اسکی = ل
کد اسکی = ا
کد اسکی = م
شما الان اعدادی دارید مثلا به این شکل : 1234123412341234

هر 4 تاش واسه یه کارکتر هست .

میتونید باهاش هر کاری کنید ، تو یه ضریب ضربش کنید بعد جمع ببنیدش با یه عدد دیگه و................

واسه برگردوندنش کافیه مراحل رو از آخر به اول برگردید .

فقط به جای کد ASC از CHR استفاده کنید .


ممنونم Tekyegah (http://barnamenevis.org/member.php?121173-Tekyegah) جان

یعنی به نظر شما این هش مش کشکه

ضمنا من از طریق replace کردن بلدم اگه کد بهتری دارین لطف بفرمایید



string g = "سلام";
g = g.Replace("س", "t4g1");
g = g.Replace("ل", "t65d5");
g = g.Replace("ا", "t5g6");
g = g.Replace("م", "dc5b");




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

علیرضا5
دوشنبه 10 اردیبهشت 1397, 15:58 عصر
خیلی ممنونم
من از یکی از این دو کد برای هش استفاده می کنم ولی ولی بعضی از جاها خوندم که دیگه نباید از اینها استفاده کرد و مورد اطمینان نیستن و یا اینکه تکنیکهای بهتری وجود داره
اگه ممکنه راجع به این مسئله توضیح بفرمائید

و اگه تکنیک بهتری هست ممنونم میشیم کدش رو بفرمائید



Label1.Text = FormsAuthentication.HashPasswordForStoringInConfig File(TextBox1.Text, "MD5");


Label1.Text = FormsAuthentication.HashPasswordForStoringInConfig File(TextBox1.Text, "sha1");

Tekyegah
سه شنبه 11 اردیبهشت 1397, 19:38 عصر
لطفا مطالعه بفرمایید

https://msdn.microsoft.com/en-us/library/x9kb82hd(v=vs.110).aspx



char c = Convert.ToChar(65);
int i = Convert.ToInt32('A');