منبع : http://dotaspx.blogspot.com
تعریف Hashing :
Hashing در لغت به معنای مخلوط کردن است و در علوم کامپیوتر به یک نوع خاصی از الگوریتم های رمز نگاری گفته میشود . عمل Hashing یک عمل یکطرفه میباشد بدین معنی که یک رشته را میتوان Hash کرد ولی یک رشته Hash شده را نمیتوان به حالت اول بازگرداند . برای روشن تر شدن مفهوم Hashing مثالی ذکر میکنم:
رشته “mehdi” را بعنوان یک رشته در نظر بگیرد . با استفاده از Hashing و استفاده از الگوریتم SHA1 (یکی از الگوریتم های رمز نگاری که در .netاز آن استفاده میشود) رشته Hash شده زیر حاصل میشود:
Hashing در لغت به معنای مخلوط کردن است و در علوم کامپیوتر به یک نوع خاصی از الگوریتم های رمز نگاری گفته میشود . عمل Hashing یک عمل یکطرفه میباشد بدین معنی که یک رشته را میتوان Hash کرد ولی یک رشته Hash شده را نمیتوان به حالت اول بازگرداند . برای روشن تر شدن مفهوم Hashing مثالی ذکر میکنم:
رشته “mehdi” را بعنوان یک رشته در نظر بگیرد . با استفاده از Hashing و استفاده از الگوریتم SHA1 (یکی از الگوریتم های رمز نگاری که در .netاز آن استفاده میشود) رشته Hash شده زیر حاصل میشود:
D8932FD49BB05FF0670C3545D15547CB7BAAF208
ولی امکان اینکه رشته Hash شده فوق را به حالت اول برگرداند هرگز وجود ندارد .نکته قابل توجه در این بخش این است که رشته Hash شده mehdi همیشه مقدار فوق میباشد و رشته دیگری نیست که مقدار Hash شده ی آن برابر با مقدار Hash شده رشته mehdi باشد .
مواردی که از Hashing استفاده میشود:
یکی از مواردی که از تکنیک Hashing استفاده میشود بخش Login سایت میباشد . در ابتدا در مرحله Register ،Password ی که از کاربر گرفته میشود Hash شده و مقدار Hash شده در Table مربوطه قرار میگیرد . با این عمل امنیت DataBase بالا رفته و در صورتHack شدن DataBaseاطلاعات کاربران به سرقت نخواهد رفت .
برای تائید کاربران با استفاده از Username و Password ابتدا در قسمت Login سایت Username و Password از کاربر گرفته میشود و Password وارد شده Hash میشود . این مقدار به همراه Username به تابعی ارسال میشوند . در این تابع ابتدا Username در Table مربوطه جستجو میشود و Password متناظر که Hash شده است با Password کاربر که آن هم Hash شده است مقایسه می شوند چنانچه این دو مقدار یکی باشد بدین معناست که کاربر Username و password صحیحی را وارد کرده است .
استفاده از Hashing در ASP.net:
بهره گیری از Hashing در ASP.net بسیار آسان بوده و .net امکانات فراوانی در این زمینه فراهم آورده که همه ی آنها در System.Web.Security میباشد . برای Hash کردن یک رشته میتوان از متد زیر استفاده کرد:
String FormsAuthentication.HashPasswordForStoringInConfigFile(string source_str , string hash_algtm);
متد فوق دو ورودی دارد که اولی درواقه رشته مورد نظر است که میخواهید آن را Hashکنید و دومی الگوریتم Hashing میباشد که میتواند یکی از دو مقدار SHA1 یا MD5 باشد . خروجی نیز مقدار Hash شده است . در انتها برای برای کامل شدن موضوع میتوانید فایل زیر را دانلود کنید:
دانلود نمونه برنامه
آخرین ویرایش: