Tạo mật khẩu ngẫu nhiên trong ASP.NET

Trên các diễn dàn hoặc các website nếu họ có chức năng đăng kí và quản lí thành viên thì đều có 1 chức năng đó là lấy lại mật khẩu. Khi lấy lại mật khẩu thì bạn luôn không lấy được mật khẩu mình đã quên mà lấy được một mật khẩu mới với một chuỗi các kí tự được sắp xếp ngẫu nhiên. Điều này là do các password đã được hash(băm - thuật toán băm dữ liệu->không thể lấy lại dữ liệu ban đầu). Vì thế bạn chỉ có thể nhận một password mới. Bài viết này mình xin hướng dẫn các bạn cách tạo một phương thức sinh password mới ngẫu nhiên.

public static string GenerateRandomPassword(int length)
        {
            string allowedLetterChars = "abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ";
            string allowedNumberChars = "0123456789";
            char[] chars = new char[length];
            Random rd = new Random();
            bool useLetter =  true;
            for (int i = 0; i < length; i++)
            {
                if (useLetter)
                {
                    chars[i] = allowedLetterChars[rd.Next(0, allowedLetterChars.Length)];
                    useLetter = false;
                }
                else
                {
                    chars[i] = allowedNumberChars[rd.Next(0, allowedNumberChars.Length)];
                    useLetter = true;
                }
            }
            return new string(chars);
        }

Sau đó bạn gọi phương thức này ra khi bạn cần và truyền vào tham số là số kí tự cho password mới. Ví dụ như GenerateRandomPassword (6) và kết quả là z8BSGm. Hy vọng với chút thủ thuật nhỏ này các bạn có thể tạo được 1 module lấy lại mật khẩu trên web. Chúc các bạn thành công!

Không có nhận xét nào: