Re[3]: протух пароль
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.15 18:18
Оценка:
Здравствуйте, wildwind, Вы писали:

W>А можно ссылку или своими словами, из каких соображений?


Ссылку можно, в соображения не вникал особо.
Правда, как оказалось, интел весьма разнообразен:
https://ssl.intel.com/reg-app/popup.aspx?Popuptype=PWD-RULES-PRIV&Lang=ENG
https://ssl.intel.com/reg-app/popup.aspx?Popuptype=PWD-RULES-CONF
https://software.intel.com/sites/default/files/m/d/0/7/a/5/16954-password_guidelines.pdf

Вобщем, сейчас проверочный код такой:
private static readonly HashSet<char> _allowedPwdChars =
    new HashSet<char> 
    {
        '`', '!', '@', '$', '%', '^', '&', '*', '(', ')', '-', '_', '=', '+', '[', ']', ';', ':', '"', '<', '.', '>',
        '/', '?', '#'
    };
    
private static Task<string> CheckPwd(string pwd, string login, string email)
{
    return
        Task.Run(
            () =>
            {
                if (pwd == null || pwd.Length < 8)
                    return "Пароль должен быть не короче 8 символов";
                var invalidChar = pwd.FirstOrDefault(c => !char.IsLetter(c) && !char.IsDigit(c) && !_allowedPwdChars.Contains(c));
                if (invalidChar != default (char))
                    return "Символ '{0}' в пароле недопустим".Args(invalidChar);
                var cmp = StringComparer.OrdinalIgnoreCase;
                if (cmp.Equals(pwd, login))
                    return "Пароль не может совпадать с логином";
                if (cmp.Equals(pwd, email))
                    return "Пароль не может совпадать с почтовым адресом";
                return null;
            });
}
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.