thể trùng lặp:
Strong password regex
Need RegEx for password strength?chuỗi Kiểm tra cho một mật khẩu đủ mạnh
Tôi chỉ tự hỏi những cách tốt nhất để tìm kiếm một chuỗi cho tiêu chí nhất định (sức mạnh mật khẩu để cụ thể) có thể được thực hiện.
Cho đến nay tôi có một đơn giản:
if(password.Length <= 7)
{
errorMessage = "Your password must be at least 8 characters.";
}
Tôi muốn để có thể kiểm tra chữ in hoa, nhưng tôi không chắc chắn những gì các phương pháp hay thủ tục là. Tôi đã thử dùng Googling, tìm kiếm trên trang web: http://msdn.microsoft.com và tìm kiếm chỉ mục của cuốn sách C# của tôi (Lập trình C# 3E, của Barbara Doyle), nhưng tôi dường như không tìm thấy bất kỳ thứ gì.
Tôi biết tôi có thể thử này ...:
foreach(char c in password)
{
if(c!='A' || c!='B' || c!='C' || c!='D' ..... || c!='Z')
{
errorMessage = "Your password must contain at least one capital letter";
}
}
... Nhưng điều đó sẽ là vô cùng cẩu thả, và sẽ phải được tăng gấp đôi để kiểm tra ít nhất một chữ cái thường. Tôi chắc chắn có một cách tốt hơn để làm điều này, hoặc ít nhất là viết tắt của phương pháp tôi đã trình bày ở trên.
Ngoài ra, tôi có thể quyết định kiểm tra mật khẩu cho các ký tự đặc biệt (có vẻ dễ hơn trong ví dụ trên so với chữ hoa và chữ thường).). Nếu có một cách dễ dàng (hoặc thích hợp) để làm điều đó, tôi cũng muốn có kiến thức đó.
Dù sao, cảm ơn bạn rất nhiều vì bất kỳ trợ giúp nào mà bất kỳ ai cũng có thể cung cấp.
Đây không phải là câu trả lời, nhưng hãy đảm bảo bạn hiểu http://xkcd.com/936/ và http://xkcd.com/792/ Và tôi cũng khuyên bạn nên đọc http://www.codinghorror.com /blog/2010/12/the-dirty-truth-about-web-passwords.html và tìm kiếm trang web của Jeff cho các bài viết có liên quan khác. Sau đó, hãy xem Cụm từ thông dụng để xác minh độ dài/độ phức tạp phù hợp. – David
Thay vì một loạt các mệnh đề 'if ... then', bạn có thể muốn chạy mật khẩu thông qua một biểu thức chính quy. Hãy xem [SO trả lời] này (http://stackoverflow.com/questions/3131025/strong-password-regex). Tôi nghĩ rằng nó cung cấp các biểu thức thông thường sẽ giúp bạn. –
@DarinDimitrov Hey, cảm ơn vì điều đó, tôi không thấy liên kết đó, bởi vì tôi không biết tìm kiếm regex (mặc dù, tôi đoán là nó rõ ràng). Lời xin lỗi của tôi, và thnx cho liên kết! – VoidKing