Skip to content

Dexon366/Project-activities

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

🔐 Password Vault — Менеджер личных паролей

Password Vault — это легковесное консольное приложение для безопасного хранения, генерации и управления паролями.
Все данные шифруются локально1, мастер-пароль не сохраняется.


📑 Оглавление


О проекте

Password Vault родился из необходимости хранить пароли от разных сервисов в одном защищённом месте.

«Безопасность — это не функция, а образ мышления.» — миссия проекта.

Проект написан на Python 3.10+ и использует:

  • cryptography для шифрования,
  • secrets для генерации стойких паролей,
  • JSON для хранения записей.

Инлайн-код: для генерации пароля вызовите vault.generate_password(12).


Возможности

  • 🔒 Локальное шифрование — все данные хранятся в зашифрованном виде.
  • 🔑 Генератор стойких паролей — длина от 8 до 32 символов.
  • 📋 Копирование пароля в буфер обмена (через pyperclip).
  • 🗂 Категории записей (соцсети, почта, банки, работа).
  • 🛡 Блокировка хранилища после 3 неудачных попыток ввода мастер-пароля.

Структура папок проекта

  • password_vault/
    • vault/
      • __init__.py
      • crypto.py — шифрование/дешифрование
      • storage.py — работа с JSON-файлом
      • cli.py — интерфейс командной строки
    • tests/
      • test_crypto.py
    • requirements.txt
    • README.md
    • main.py

Технические характеристики

Характеристика Значение
Язык программирования Python 3.10+
Алгоритм шифрования AES-256 (Fernet)
Формат хранения JSON + шифрование
Минимальная длина пароля 8 символов
Поддержка ОС Windows / Linux / macOS

Установка

  1. Склонируйте репозиторий
    git clone https://github.com/yourusername/password_vault.git

  2. Перейдите в папку проекта
    cd password_vault

  3. Создайте виртуальное окружение
    python -m venv venv

  4. Активируйте виртуальное окружение

    • Windows: venv\Scripts\activate
    • Mac/Linux: source venv/bin/activate
  5. Установите зависимости
    pip install -r requirements.txt

  6. Запустите приложение
    python main.py


Пример использования

# Пример кода: создание нового пароля
from vault.crypto import generate_password

# Генерация пароля длиной 16 символов
new_pass = generate_password(16)
print(f"Сгенерированный пароль: {new_pass}")

Ожидаемый вывод:
Сгенерированный пароль: kL9#x!mQ2$pV&zR7

Планы по развитию

  • Реализовать базовое шифрование (AES-256)
  • Добавить двухфакторную аутентификацию (TOTP)
  • Создать графический интерфейс (Tkinter / PyQt)
  • Реализовать автоблокировку при бездействии
  • Выпустить мобильное приложение (Kivy)

Команда

  • Алексей С. — разработчик бэкенда, шифрование
  • Мария К. — тестирование, документация
  • Проект открыт для контрибьюторов — пишите в Issues

Лицензия

Проект распространяется под лицензией MIT. Подробнее — в файле LICENSE.


Ответы на контрольные вопросы

📖 Нажмите, чтобы развернуть ответы
  1. Чем отличается вложенная цитата от обычной?
    Обычная цитата начинается с > и представляет один блок. Вложенная — это цитата внутри цитаты, обозначается >>, >>> и т.д. Она создаёт иерархию (цитата в цитате).

  2. Как сделать сноску в Markdown и где она отображается?
    В тексте ставится [^ключ], а внизу документа — [^ключ]: Текст сноски. Сноски отображаются в конце документа (или раздела) в виде нумерованного списка.

  3. В чём разница между - [ ] и - [x] в списках задач?
    - [ ] — невыполненная задача, - [x] — выполненная. На GitHub такие списки становятся интерактивными чекбоксами.

  4. Какие два способа вставки эмодзи вы знаете?

    • Кодовые последовательности: :smile: → 😄
    • Прямое копирование символа: 😄
  5. Зачем нужны HTML-вставки? Приведите пример.
    Чтобы добавить элементы, которых нет в Markdown: цветной текст, выпадающие списки, клавиши <kbd>.
    Пример: <kbd>Ctrl</kbd> + <kbd>C</kbd>

  6. Почему важно использовать правильные имена для внутренних ссылок (якорей)?
    Потому что ссылка вида #мой заголовок преобразуется в #мой-заголовок (пробелы → дефисы, регистр ↓). Если назвать якорь неправильно, ссылка не сработает.

  7. Что произойдёт, если в таблице окажется разное количество столбцов в разных строках?
    Рендер нарушится: строка с меньшим числом ячеек будет иметь «дырки», с большим — лишние ячейки могут быть проигнорированы или «съехать». Таблица станет нечитаемой.


🏁 Горизонтальный разделитель

Выше и ниже этой строки есть разделители ---.
Это — последний обязательный элемент документа.

Footnotes

  1. Используется симметричное шифрование AES-256.

About

Repository for project activities

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors