Локальный менеджер паролей с современным графическим (PySide6) и быстрым консольным (CLI) интерфейсами. Проект построен на принципах чистой архитектуры (Clean Architecture), использует надежные стандарты криптографии для защиты данных и хранит базу данных локально.
- Два интерфейса: Полноценный графический интерфейс (GUI) и инструмент командной строки (CLI).
- Безопасное хранение: Пароли шифруются алгоритмом AES-128-CBC (Fernet) на основе вашего мастер-пароля.
- Организация данных: Поддержка создания и управления категориями для группировки паролей.
- История паролей: Приложение автоматически запоминает старые пароли при их изменении. Для просмотра истории добавлен удобный диалог.
- Удобный поиск: Быстрый сквозной поиск по логину и названию сайта.
- Буфер обмена: Быстрое копирование логинов и паролей через контекстное меню (⋮) в один клик.
- Статистика: Встроенная панель статистики по сохраненным данным, уникальным сайтам и времени последнего обновления.
- Язык: Python 3.10+
- GUI Фреймворк: PySide6 (Qt)
- ORM и База данных: SQLAlchemy 2.0 + SQLite (
db.sqlite) - Криптография:
cryptography(Fernet, PBKDF2HMAC) для симметричного шифрования данных.bcryptдля хеширования и проверки мастер-пароля при входе.
password-manager/
├── core/ # Ядро приложения
│ ├── models.py # Модели базы данных SQLAlchemy
│ ├── database.py # Настройки подключения к БД SQLite
│ ├── repositories/ # Слой работы с БД (CRUD операции)
│ └── services/ # Бизнес-логика (шифрование, пароли, юзеры, категории)
├── desktop/ # Графический интерфейс
│ ├── dialogs/ # Всплывающие окна (добавление, редактирование, история)
│ ├── styles/ # QSS стили оформления
│ ├── widgets/ # UI компоненты (таблицы, списки, статистика)
│ └── windows/ # Основные окна (Логин, Главное окно)
├── cli.py # Консольный интерфейс приложения
├── main.py # Точка входа для запуска GUI версии
└── requirements.txt # Зависимости Python
- Мастер-пароль никогда не сохраняется в открытом виде. В базу данных сохраняется только его
bcryptхеш с уникальной солью. - Ключ для шифрования данных генерируется "на лету" в оперативной памяти с помощью алгоритма PBKDF2HMAC (100 000 итераций).
- Все сохраненные пароли в базе зашифрованы алгоритмом Fernet. Без знания мастер-пароля злоумышленник, получивший файл
db.sqlite, не сможет прочитать ваши данные.
git clone https://github.com/yourusername/password-manager.git
cd password-managerpython -m venv venv
# Активация на Windows:
venv\Scripts\activate
# Активация на macOS/Linux:
source venv/bin/activatepip install -r requirements.txtПри первом запуске база данных db.sqlite создастся автоматически в корне проекта.
Для запуска графической версии (GUI):
python main.pyДля запуска консольной версии (CLI):
python cli.py- Регистрация: При первом запуске выберите «Регистрация» и придумайте надежный мастер-пароль. Запомните его! Без мастер-пароля восстановить доступ к базе данных будет невозможно.
- Добавление: В главном окне нажмите «Добавить пароль». Введите сайт, логин, сам пароль и при необходимости назначьте категории (через запятую).
- Управление: Используйте кнопку 👁 (глаз), чтобы показать скрытый пароль. Нажмите кнопку ⋮ (меню), чтобы открыть функции: скопировать данные, отредактировать пароль, просмотреть историю его изменений или удалить запись.
- Категории: Создавайте новые категории в левой панели для удобной сортировки и фильтрации записей.