نحوه رمزنگاری و رمزگشایی رمز عبور در asp.net
نحوه رمزنگاری و رمزگشایی رمز عبور در asp.net
در این پست قصد داریم تا نحوه رمزنگاری و رمزگشایی رمز عبور در Asp.Net را توضیح دهیم.
در پست های قبلی نحوه رمزنگاری و رمزگشایی رشته اتصال به دیتابیس (کانکشن استرینگ) را توضیح دادیم. و یکی دیگر از کارهای که باید در امنیت سایت در نظر داشته باشید رمزنگاری رمز عبور می باشد.
برای رمزنگاری رمز عبور روش های متفاوتی وجود دارد مانند رمزنگاری یک طرفه به این صورت که فقط الگوریتم رمزنگاری برای آن نوشته شده و الگوریتم رمزگشایی برای آن نوشته نشده است.
رمزنگاری های دیگری مانند MD5 , DES , AES و غیره نیز وجود دارد.
اما ما اینجا قصد توضیح این نوع رمزنگاری ها را نداریم. در این قسمت ما دو متد را برای شما معرفی می کنیم که یکی برای انجام رمزنگاری استفاده می شود و دیگری برای رمزگشایی و شما می توانید خودتان به اختیار این الگوریتم را تغییر داده و یک الگوریتم جدید برای رمزنگاری و رمزگشایی رمز عبور خود استفاده کنید.
متد Encrypt با دریافت یک رشته آن را رمزنگاری کرده و رشته رمزنگاری شده را بر میگرداند.
public static string Encrypt(string password) { char[] pass = password.ToCharArray(); string[] symb = {"@", "#", "$", "%", "&"}; Random rnd = new Random(); string newpass = ""; for (int i = pass.Length - 1; i >= 0; i--) { newpass += ((int) pass[i]).ToString() + symb[rnd.Next(0, 5)]; } return newpass; }
متد Decrypt با دریافت یک رشته آن را رمزگشایی کرده و رشته رمزگشایی شده را بر میگرداند.
public static string Decrypt(string password) { string[] tokens = password.Split('@', '#', '$', '%', '&'); string pass = ""; for (int i = tokens.Length - 2; i >= 0; i--) { pass += ((char) Convert.ToInt32(tokens[i])).ToString(); } return pass; }
برای استفاده از متدهای بالا کافیست یک کلاس ایجاد کنید و دو متد بالا را در آن کپی کنید.
متدهای بالا از نوع static تعریف شدن در این صورت نیار به ایجاد شی از کلاس مورد نظر نمی باشد. و کافیست نام کلاس را نوشته و نام متد و در نهایت رشته رمزنگاری یا رمزگشایی را وارد کنید را مشخص کنید.
EncryptorDecryptor.Encrypt("رشته رمزنگاری"); EncryptorDecryptor.Decrypt("رشته رمزگشایی");
نظر / سوال