Skip to content

ZProger378/passmen_bot

Repository files navigation

passmen_bot

Это простой, но безопасный парольный менеджер прямо в телеграмм, выполненный в виде бота.

Для доступа ко всем своим паролям нужен мастер-пароль, который хранится в виде хеша, созданным алгоритмом sha512 с длинной солью. Алгоритм соли для каждого пользователя генерируется отдельно и хранится в config.json Бот не хранит своих пользователей, а для отличия одних пользователей от других используется также алгоритм хеширования.

База данных и файл конфига, который для каждого пользователя индивидуальный, зашифрован симметричным алгоритмом AES, в качестве ключа шифрования используется тот самый мастер-пароль. А в момент открытия сессия база расшифровывается, но даже в расшифрованном виде, основные данные (логин и пароль) зашифрованы. После работы с базой сессию нужно закрыть, тогда база данных снова зашифровывается.

Бот соответвует изначальным требованиям, однако есть придирка. Я не знаю, вина ли это алгоритма AES или самой библиотеки pyAesCrypt, но шифрование и расшифровка файлов довольно долгое, это видно по задержке между открытием или закрытием сессию и сообщения, в котором говорится, сессия открыта или закрыта.

Рабочий пример бота: https://t.me/passmen_bot

ВНИМАНИЕ!!! Во избежание кражи данных, используйте только этого бота или поднятого вами из этого исходного кода

Поднятие бота на вашей VDS

  1. Находим или покупаем VDS на Debian или Ubuntu

  2. Подключаемся по ssh (с помощью стандартной команды ssh или с помощью других программ)

  3. Вводим команды:

    $ apt install python3-pip

    $ apt install npm

    $ npm install pm2 -g

    $ apt install git

    $ git clone https://github.com/ZProger378/passmen_bot/

    $ cd passmen_bot

    $ pip3 install -r requirements.txt

    $ export TELEGRAM_TOKEN="<ВАШ ТЕЛЕГРАМ ТОКЕН БОТА>"

    $ python3 reset_database.py

    $ pm2 start main.py --interpreter python3

Процесс обновления бота

Я создал файл update.py и всё что нужно - это запустить от имени root:

$ python3 update.py

Файл установит git (если его не было)

И выполнит комманду git pull и доустановит новые зависимости

Затем бота нужно лишь перезапустить:

$ pm2 restart main.py

ВНИМАНИЕ!

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

QIWI: +79188784008

VISA: 5536910028223198

Я буду очень благодарен.

Если возможности поддержать нет, то подпишитесь на мой телеграм-канал: https://t.me/anonim_projects

Я буду очень рад)

С любовью, ZProger3)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages