Сколько и каких символов должен содержать пароль
Сразу надо разделить все пароли на две большие категории. Первая это пароли, вводимые для получения доступа к онлайн сервисам. Ко второй относятся пароли, защищающие архивы и зашифрованные файлы. Требования к ним разные. Мы не рекомендуем использовать пароли к онлайн сервисам длиннее двенадцати символов. На сегодняшний день этого вполне достаточно, так как прямой перебор путем отправки запроса на сервер и получения ответа идет слишком медленно даже для взлома существенно более коротких паролей. Кроме того, ни один уважающий себя ресурс не позволит вводить пароли как из пулемета, на определенной попытке ip адрес просто заблокируют. С другой стороны слишком длинные пароли могут на сервере молча обрезаться или, что еще хуже, некорректно обрабатываться. Так что длина в двенадцать символов является оптимальной в современных реалиях. Для шифрования файлов, напротив, необходимо использовать как можно большее количество символов в предлагаемых алгоритмом рамках. Здесь оптимальным будет пароль в тридцать два символа. Минимально допустимым может считаться двадцатисимвольный пароль.
И те и другие пароли должны содержать только заглавные и строчные латинские буквы и цифры. Некоторые сервисы пропагандируют и даже требуют включения в пароль экзотических символов. Что ж, если вы столкнулись с подобным требованием, подчинитесь ему. Но делать такие вещи по собственной инициативе мы не рекомендуем. Существует стандартный набор символов, которые по идее должны обрабатываться так же, как и буквы, и их, опять же по идее, можно безопасно включать в пароль. Но это в теории. На практике же иногда попадаются программисты с совершенно удивительной способностью разместить грабли там, где их, казалось бы, разместить невозможно в принципе. Поэтому лучше не рисковать.
Напоследок расскажем об одной исключительной ситуации, которую надо уметь обрабатывать. Некоторые сервисы могут потребовать пароль, в обязательном порядке содержащий хотя бы одну цифру, одну строчную букву и одну заглавную букву. А значит если хеш вашего пароля не содержит одного из обязательных символов, сервис его не примет. Существует два способа решения этой проблемы.
Сложный способ требует модификации алгоритма получения конечного пароля. Здесь самым удобным будет вариант брать не 1-12 символы из хеша, а 2-13. Если и с этим паролем что-то не так, то 3-14, и так далее. Вероятность того, что любые идущие подряд 12 символов длинной последовательности полного хеша будут забракованы, стремится к нулю. Но теоретически такое возможно. Тогда придется проскочить один порядковый номер в очереди при смене пароля. Например, если будут забракованы все возможные 12-символьные пароли, получающиеся из bulka59 не подойдут, то надо пропустить этот пароль, и сразу ставить bulka60.
Существует и более легкий путь. Все будет прекрасно работать, если к любому паролю в обязательном порядке добавлять, например, Aa1. Тогда, вне зависимости от хеша, конечный пароль будет обязательно содержать все необходимые символы. Но серьезный человек так не поступит. Потому что последовательность Aa1 позволит идентифицировать личность (пусть и анонимную), как одного и того же пользователя. Конечно, все сервисы хором поют сладкую песню, что все хранятся у них на сервере только в хешированном виде, и даже их собственные сотрудники не знают ваш любимый пароль. Но давайте оставим эти сказки детям, верящим в Деда Мороза и Карлсона.
Логин тоже важен
Во всех инструкциях к регистрации на сайтах очень любят поговорить о паролях и попроверять их на надежность. О логине либо не говорят вообще ничего, либо укажут символы, которые он может содержать. А вы никогда не думали о том, что плохой логин или никнейм может привести к расконспирации?
Худший из всех возможных логинов тот, который содержит ваши персональные данные. Sokolov1994 – очень плохой логин, если ваша фамилия Соколов, и вы родились в 1994 году. Vasya_10_12, ChertanovoYuzhnoe, Pythonprogrammer – тоже отвратительные логины. Но это как бы лежит на поверхности. Юзер, который кажется себе тонким конспиратором, может взять ник Vasya, в то время, как его зовут Петя, и радоваться, что всех перехитрил. А по факту он во всеуслышание заявил о своей принадлежности к русскоговорящему сообществу. Выдать могут не только буквы, но и цифры. Наличие трех шестерок в нике сообщит о христианском культурном пространстве, а специфический порядок написания числа и месяца выдаст американца.