Насколько надежны ваши пароли? Вдруг они не так хороши, как вы считаете?
Пароль – это главный барьер, который мешает злоумышленникам получить ваши данные в сети. Чтобы не подвергать риску кражи данных, нужно создавать пароли, которые могут помешать хакерам.
Напомним, каким основным инструментарием владеют злоумышленники:
Перебор по словарю (автоматическая комбинация слов из словаря часто используемых словосочетаний),
Данные из социальной сети или любая другая информация, раскрытая вами (часто пользователи в качестве паролей выбирают различные комбинации имен, дат, кличек животных и т.д.),
Брутфорс-атака (автоматический перебор всех возможных комбинаций символов до тех пор, пока не найдется пароль),
И т.д.
Подробнее остановимся на последнем.
У брутфорс-алгоритмов вызывает трудности работа с длинными паролями, а вот короткие чаще всего можно подобрать за несколько часов!
Чтобы проверить насколько надежен пароль, предлагаем вам небольшую простую программу на python, которую легко можно самостоятельно улучшить.
Для работы программы нам понадобится библиотека re.
Создаем функцию с двумя входными параметрами – паролем и печатью (необходимостью подробной печати по каждому из тестов). Также изначально объявляем основную переменную результата – rs.
Пароль длины меньше 8 считается слабым (-10), обычный пароль имеет длину от 8 до 12 символов (+1), а хороший пароль имеет длину от 12 символов (+2).
С помощью регулярных выражений мы можем проверить наличие в пароле строчных латинских букв – если они есть, то плюс 1 балл, если нет, то минус 1 балл.
По аналогии с предыдущим фрагментом, делаем заглавную латиницу, строчную и заглавную кириллицу.
Далее проверяем наличие в пароле цифр, оценивая их также – если есть, то плюс один балл, если нет, то минус один балл.
Теперь проверяем наличие в пароле специальных символов (сам набор спецсимволов можно расширить самостоятельно при необходимости).
Также нам необходимо проверить количество уникальных символов, используемых в пароле.
Наконец, после всех вычислений, получаем итоговый результат.
Посмотрим результат на паре примеров:
1. password_stregth('Password', 1)
2. password_stregth('! S5w0rD', 1)
Следует помнить, что надежный пароль должен всегда отвечать «да» на следующий ряд вопросов:
Ваш пароль длинный?
В пароле используются разнообразные символ?
Также пароль можно улучшить неочевидными подстановками символов, избеганием простых последовательностей и т.д. Да, парой бывает, что пароль трудно запомнить, но что для вас важнее: небольшая трудность или свои данные?
Oleksiy, благодарим за комментарий! По поводу замечаний - согласны с вами, что с кодом можно еще поработать, улучшить читаемость. Попробуем в дальнейшем внедрить ваши предложения в рабочий вариант кода.
"Следует помнить, что надежный пароль должен всегда отвечать «да» на следующий ряд вопросов:"
а если у меня пароль 25 букв? без спец. символов?
сломался ваш алгоритм? - да
надежнее мой пароль, чем 9 буквенный со спец. сиволами? - да
Комментарий недоступен
Oleksiy, благодарим за комментарий! По поводу замечаний - согласны с вами, что с кодом можно еще поработать, улучшить читаемость. Попробуем в дальнейшем внедрить ваши предложения в рабочий вариант кода.
обычно, когда только для себя пишем - любые названия можно использовать, в других случаях - конечно, логически понятные термины выбираем.
"Следует помнить, что надежный пароль должен всегда отвечать «да» на следующий ряд вопросов:"
а если у меня пароль 25 букв? без спец. символов?
сломался ваш алгоритм? - да
надежнее мой пароль, чем 9 буквенный со спец. сиволами? - да
не надо думать за людей, если думать не умеете
Подскажите, а вы как с паролями работаете? Через генератор паролей или вручную? Или может своя какая-то разработка?