Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Start_pic

HallTapePassBot

Удобный telegram бот для генерации паролей и проверки их надежности

Бот доступен по ссылке в телеграм HallTapePassBot


Функции, доступные в боте:

  • Генерация легкого для запоминания пароля
Nag_Neg2*
  • Генерация сложного пароля
4E4wCsph4swaCN72KE
  • Генерация пароля для соц сетей
Dide_google_Vino5?*
  • Генерация пароля со своим словом
Omu_github_Ahi3$*
  • Проверка пароля на надежность. Например пользователь ввел свой пароль amsterdam
❌ Тебе нужно усилить твой пароль!

⚠️ Нет цифр
⚠️ Нет букв в верхнем регистре
⚠️ Нет специальных символов
⚠️ Твой пароль полностью или частично слит в сеть

⬇️ Слитые пароли
amsterdam
Amsterdam
AMSTERDAM
amsterda
amster
mster

⏳ На его взлом уйдет 23 минуты
Надежность пароля 43 %
  • Генерация никнейма
Jenny_While
Mercy_Dad
Badly_Drawn

Запуск через Docker

  1. Создайте .env файл на основе шаблона:
cp .env.example .env
  1. Укажите в .env токен вашего Telegram-бота:
TELEGRAM_TOKEN=123456:ABCDEF...
  1. Соберите Docker-образ из корня проекта:
docker build -t halltape-pass-bot .
  1. Запустите контейнер, передав переменные окружения из .env:
docker run --rm --env-file .env halltape-pass-bot

Бот запускается командой python main.py внутри контейнера и не требует проброса портов.


Описание

Основной файл, где запускается скрипт бота называется main.py. Алгоритм генерации легкого для запоминания пароля собирает в случайном порядке буквы, чередуя согласные с гласными. При этом создаются псевдо-слова длиной от 3 до 5 букв включительно. В конце каждого пароля добавляются одна цифра и специальный символ.

Пароли для соц сетей собираются по аналогичному принципу, за исключением добавления ключевого слова в центр всей конструкции. Также возможно добавить свое уникальное слово.

Также бот всегда предлагает либо усложнить пароль, в случае негативного ответа, либо сделать красивее, если пароль является надежным. Алгоритм в обоих случаях идентичен. Из строки с паролем сначала вычленяются все гласные, согласные, цифры и символы в отдельные списки, а далее уже из этого собирается новый пароль. В случае, если элементов недостаточно, программа сама добавит свои.

При нажатии кнопки Сложный пароль, бот генерирует случайный набор элементов из маленьких и больших букв, цифр и специальных символов, заведомо перемешивая их в случайном порядке. Данный метод генерирует самый надежный из доступных вариантов пароль.

Функция «Создать никнейм» берет два случайных английских слова из базы данных и выводит на печать, разделяя знаком ‘_’

Оценка надежности пароля включает в себя следующие проверки:

  • Наличие цифр
  • Наличие маленьких букв
  • Наличие больших букв
  • Наличие специальных символов
  • Уникальность пароля (наличие дублирующих символов)
  • Наличие числовых последовательностей
  • Наличие слитых паролей

Надежность пароля

В боте считается энтропия пароля. Проще говоря - это количество комбинаций пароля, учитывая количество комбинаций самих символов.

Например пароль 1Gh будет иметь:

  • 10 комбинаций цифр (0123456789)

  • 26 комбинаций маленьких букв (алфавит)

  • 26 комбинаций больших букв (алфавит)

В итоге мы получаем (62^3) = 238 328 комбинаций нашего пароля. Чем больше комбинаций, тем дольше его подбирать и тем выше его надежность.


Время подбора пароля

Бот берет количество комбинаций пароля и делит на среднюю скорость перебора паролей в секунду (3 900 000 000 комбинаций/сек). Величина взята из интернета, как усредненная. Учитывая, что разница между временем подбора в 100 веков и в 50 веков не принципиальна, то к скорости взлома стоит относиться формально.


Сравнение обработки паролей

В таблице ниже представлено сравнение результатов проверки надежности паролей с помощью HalltapePassBot, Kaspersky и 2ip

Вы можете заметить разницу в подходах, оценить уровень обработки вводимых данных, а также работу с граничными условиями.

Всем трём сервисам были скормлены заведомо ненадежные пароли, либо содержащие спорные моменты.

  • ✅ - пароль надежный
  • ❌ - пароль ненадежный
Пароль HalltapeBot Kaspersky 2ip
qwerty435345
Комментарий Слитый
пароль
Часто используемое
слово
Надёжный
3U54134(B55
Комментарий ⚠️ Нет букв в нижнем регистре
⚠️ Больше четырех чисел друг за другом

Надежность пароля 69 %
Используются "клавиатурные" последовательности Ненадёжный
3U54134(B55k
Комментарий ⚠️ Больше четырех чисел друг за другом

Надежность пароля 81 %
Надёжный Надёжный
uuuuuuuuuuuuuu
Комментарий ⚠️ Нет цифр
⚠️ Нет букв в верхнем регистре
⚠️ Нет специальных символов
⚠️ Повторяющиеся символы
⚠️ Малая уникальность пароля
Слитый пароль
Используются "клавиатурные" последовательности Надёжный
bl00d1992bmw$
Комментарий ⚠️ Нет букв в верхнем регистре
Слитый пароль
Надёжный Надёжный
Mek_Wor3_
Комментарий На его взлом уйдет 5 лет Часто используемое слово Ненадёжный

Пароль может быть взломан за 9321 час
Добавим в пароль слово google
Mek_Wor3_google
Комментарий Солнце уже потухнет, а твой пароль все еще будут подбирать Для подбора вашего пароля потребуется 470 веков Надёжный

Пароль Mek_Wor3_ содержит в себе псевдо слова, но Касперский и 2ip посчитали его ненадежным. При этом добавление слова google внезапно делает его надежным.

В общем случае возможность генерировать пароль типа Mek_Wor3_ создана для того, чтобы его можно было легко запомнить и в случае необходимости усложнить, добавлением названия сайта или приложения.

Вне зависимости от генератора паролей, самым надежным шифром всегда останется случайный набор из букв(маленьких и больших), цифр и специальных символов длиной от 10 элементов. Поэтому при возможности используйте пароли типа Fg264TtFxzW2Vx9n8#

About

Telegram bot for password generation and verification.

Topics

Resources

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages