ГлавнаяБлогМенеджер паролей на Python: Vault без зависимостей
Python

Менеджер паролей на Python: Vault без зависимостей

Менеджер паролей на Python: Vault — это однопользовательское приложение для хранения паролей, работающее на стандартной библиотеке Python. Настройте и используйте за 60 секунд.

Al
Редакция Algolitalgolit.ru
8 мин чтения13 июня 2026 г.

Зачем вам менеджер паролей на Python?

Вы когда-нибудь задумывались, сколько паролей приходится помнить среднестатистическому разработчику? Десятки, а то и сотни. Большинство решений этой проблемы делятся на два лагеря: облачные сервисы, где вы доверяете свои данные третьим лицам, или громоздкие десктопные приложения с обновлениями. Но что, если есть третий путь? Что, если можно запустить полноценный, шифрованный менеджер паролей на Python — без pip, без npm, без интернета? Именно это и делает Vault.

Что такое Vault?

Vault — это веб-приложение для хранения паролей, которое живёт в одном Python-файле. Вы запускаете его, локальный сервер стартует, браузер открывается, и вы видите тёмный интерфейс, похожий на современный SaaS-продукт, а не на скрипт для хобби. Каждый пароль шифруется до того, как попасть на диск. Закрываете вкладку — данные в безопасности. Проект с открытым исходным кодом доступен на GitHub: github.com/jafartavana01/password-wallet.

Философия: один файл, никаких компромиссов

Большинство разработчиков, создавая веб-приложение, тянутся за Flask, React, SQLite и несколькими библиотеками для шифрования, прежде чем написать строчку бизнес-логики. Vault построен на другом ограничении: только стандартная библиотека Python. Это решение было осознанным и формирует всё в проекте:

  • Никакой установки. Не нужна виртуальная среда, не нужен pip. Если у вас Python 3.7 или выше, у вас уже есть всё, что нужно Vault.
  • Никаких рисков цепочки поставок. Каждая строчка кода, работающая на вашей машине, написана автором проекта, а не взята из реестра сторонних пакетов. Это критически важно для инструмента, работающего с чувствительными данными.
  • Полностью портативный. Скиньте файл на USB-флешку, перенесите на любую машину, запустите. Никакой настройки, никаких конфигурационных мастеров.
python password_wallet.py

Это весь процесс установки.

Модель безопасности

Менеджер паролей, который небезопасен, — это не менеджер, а ответственность. Vault использует многоуровневый подход к защите данных, реализованный целиком на встроенных модулях hashlib и hmac.

Проверка мастер-пароля

Когда вы устанавливаете мастер-пароль впервые, Vault никогда его не сохраняет. Вместо этого он выводит и сохраняет верификатор PBKDF2-HMAC-SHA256 — однонаправленный хеш, вычисленный за 200 000 итераций с фиксированной солью. Исходный пароль невозможно восстановить из этого верификатора.

Шифрование каждой записи

Каждая запись шифруется отдельно перед записью в файл wallet.json. Процесс выглядит так:

  • Генерируется новая 16-байтовая случайная соль и 16-байтовый IV с помощью модуля secrets (криптографически безопасная генерация).
  • Ваш мастер-пароль объединяется с солью и растягивается через PBKDF2 до 32-байтового ключа.
  • Этот ключ разделяется на ключ шифрования и ключ MAC с помощью SHA-256 domain separation.
  • Данные записи шифруются с помощью XOR-потокового шифра, управляемого цепочкой блоков SHA-256.
  • Тег HMAC-SHA256 вычисляется по соли, IV и шифротексту и добавляется к блоку.

Когда вы открываете хранилище и загружаете записи, HMAC проверяется перед любым дешифрованием. Если тег не совпадает — неверный пароль, повреждённый файл или изменённые данные — дешифрование полностью отклоняется.

Только в памяти

Расшифрованные записи никогда не попадают на диск. Они живут только в памяти JavaScript вашего браузера на время сессии. Как только вы нажимаете «Lock», мастер-пароль стирается из памяти, все записи удаляются, и приложение возвращается к экрану блокировки. Никаких чувствительных данных не остаётся.

Интерфейс

Интерфейс разработан так, чтобы ощущаться как настоящий продукт. Тёмно-синие фоны (#0D1117), электрические синие акценты (#58A6FF) и моноширинный шрифт в стиле терминала для паролей — эстетика сигнализирует, что это инструмент безопасности, а не игрушка.

Экран блокировки

Полноэкранный экран блокировки встречает вас при каждом запуске. Поле ввода пароля имеет анимацию «следы схемы» при фокусе — граница светится и обводит поле, как разблокирующаяся схема. Это небольшая деталь, но она задаёт тон.

Хранилище

После разблокировки интерфейс разделяется на знакомую двухпанельную раскладку: боковая панель со списком всех записей и основная панель с деталями выбранной записи. Записи раскрашены по автоматически сгенерированному аватару (на основе названия записи) и помечены категорией — Web, Finance, Email, Social, Work или Other.

Просмотр пароля

Каждая запись отображает пароль под маской по умолчанию. Переключатель показывает его. Кнопка копирования в один клик копирует имя пользователя, пароль или URL в буфер обмена с всплывающим уведомлением. Цветная полоса силы пароля показывает, насколько он надёжен.

Генератор

В модальное окно добавления/редактирования встроен полностью настраиваемый генератор паролей. Выбирайте длину (от 8 до 64 символов), включайте/выключайте заглавные буквы, строчные, цифры и символы, нажимайте Generate — и появляется криптографически случайный пароль. Ещё один клик применяет его к полю пароля.

Файл данных

Все ваши записи хранятся в одном файле: wallet.json. Он выглядит примерно так:

{
  "verifier": "a3f8b2c1d4e5...",
  "entries": [
    {
      "id": "3e9a1c4f",
      "data": "dGhpcyBpcyBhIGJhc2U2NCBlbmNyeXB0ZWQgYmxvYg==",
      "updated": "2025-06-12"
    }
  ]
}

Поле data — это непрозрачный base64-блоб. Без мастер-пароля он не раскрывает ничего о названии записи, имени пользователя, пароле, URL или заметках. Файл безопасно резервировать, синхронизировать с личным облаком или переносить между машинами.

Поиск и организация

Строка поиска в заголовке фильтрует записи в реальном времени по названиям, именам пользователей, URL и категориям. Статистическая панель под заголовком показывает общее количество записей, количество активных категорий и — что полезно — количество слабых паролей, чтобы вы знали, когда пора провести ревизию.

Для кого это?

Vault создан для нескольких типов людей:

  • Разработчики и сисадмины, которым нужен локальный, проверяемый менеджер паролей, который можно прочитать от корки до корки за один присест. Никаких чёрных ящиков.
  • Люди, заботящиеся о конфиденциальности, которые не доверяют облачным менеджерам паролей и хотят, чтобы их данные оставались на их собственном оборудовании.
  • Любой, кому нужно портативное решение — работа на заблокированной корпоративной машине, изолированной рабочей станции или Raspberry Pi. Если работает Python, работает и Vault.

Начало работы

# Клонируйте репозиторий
git clone https://github.com/jafartavana01/password-wallet.git
cd password-wallet
# Запустите
python password_wallet.py

Ваш браузер откроется автоматически. При первом запуске вас попросят установить мастер-пароль — выберите что-то надёжное и запишите в безопасное место. Механизма восстановления пароля по замыслу нет. Файл wallet.json создаётся автоматически в той же директории. Регулярно делайте его резервную копию.

Что дальше?

Этот проект демонстрирует, что возможно, когда вы относитесь к ограничениям как к творческому вызову, а не как к преграде. Будущие направления могут включать:

  • Импорт/экспорт из распространённых форматов (CSV, 1Password, Bitwarden)
  • Расширение для браузера для автозаполнения
  • Опциональное шифрование AES-256-GCM через пакет cryptography для пользователей, которые хотят проверенные криптографические примитивы
  • Поддержка TOTP / двухфакторной аутентификации

Идеи и вклады приветствуются через GitHub Issues и Pull Requests.

Заключение

Есть что-то удовлетворяющее в инструменте, который делает ровно одну вещь, делает её хорошо и не требует от вас ничего, кроме Python. Vault не пытается быть Bitwarden или 1Password. Он пытается быть тем, что вы можете передать любому, сказать python password_wallet.py, и через 60 секунд они будут хранить пароли в безопасности. Иногда это именно то, что нужно.

Практический вывод: Скачайте Vault прямо сейчас, установите мастер-пароль и перенесите свои пароли в локальное, шифрованное хранилище. Это займёт меньше минуты, и вы получите полный контроль над своими данными.

#менеджер паролей#Python#шифрование#безопасность#без зависимостей
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →
Менеджер паролей на Python: Vault без зависимостей | Algolit