Это простой, но безопасный парольный менеджер прямо в телеграмм, выполненный в виде бота.
Для доступа ко всем своим паролям нужен мастер-пароль, который хранится в виде хеша, созданным алгоритмом sha512 с длинной солью. Алгоритм соли для каждого пользователя генерируется отдельно и хранится в config.json Бот не хранит своих пользователей, а для отличия одних пользователей от других используется также алгоритм хеширования.
База данных и файл конфига, который для каждого пользователя индивидуальный, зашифрован симметричным алгоритмом AES, в качестве ключа шифрования используется тот самый мастер-пароль. А в момент открытия сессия база расшифровывается, но даже в расшифрованном виде, основные данные (логин и пароль) зашифрованы. После работы с базой сессию нужно закрыть, тогда база данных снова зашифровывается.
Бот соответвует изначальным требованиям, однако есть придирка. Я не знаю, вина ли это алгоритма AES или самой библиотеки pyAesCrypt, но шифрование и расшифровка файлов довольно долгое, это видно по задержке между открытием или закрытием сессию и сообщения, в котором говорится, сессия открыта или закрыта.
Рабочий пример бота: https://t.me/passmen_bot
ВНИМАНИЕ!!! Во избежание кражи данных, используйте только этого бота или поднятого вами из этого исходного кода
-
Находим или покупаем VDS на Debian или Ubuntu
-
Подключаемся по ssh (с помощью стандартной команды ssh или с помощью других программ)
-
Вводим команды:
$ 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)