Skip to content

Fiudeus/password-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Password Manager 🔐

Локальный менеджер паролей с современным графическим (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, не сможет прочитать ваши данные.

🚀 Установка и запуск

1. Клонирование репозитория

git clone https://github.com/yourusername/password-manager.git
cd password-manager

2. Создание виртуального окружения (рекомендуется)

python -m venv venv

# Активация на Windows:
venv\Scripts\activate

# Активация на macOS/Linux:
source venv/bin/activate

3. Установка зависимостей

pip install -r requirements.txt

4. Запуск приложения

При первом запуске база данных db.sqlite создастся автоматически в корне проекта.

Для запуска графической версии (GUI):

python main.py

Для запуска консольной версии (CLI):

python cli.py

📝 Использование

  1. Регистрация: При первом запуске выберите «Регистрация» и придумайте надежный мастер-пароль. Запомните его! Без мастер-пароля восстановить доступ к базе данных будет невозможно.
  2. Добавление: В главном окне нажмите «Добавить пароль». Введите сайт, логин, сам пароль и при необходимости назначьте категории (через запятую).
  3. Управление: Используйте кнопку 👁 (глаз), чтобы показать скрытый пароль. Нажмите кнопку ⋮ (меню), чтобы открыть функции: скопировать данные, отредактировать пароль, просмотреть историю его изменений или удалить запись.
  4. Категории: Создавайте новые категории в левой панели для удобной сортировки и фильтрации записей.

About

Локальный менеджер паролей с графическим (PySide6) и консольным интерфейсами. Реализован на Python с применением Clean Architecture. Учебный проект / Курсовая работа.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages