Менеджер паролей на Python: Vault — это однопользовательское приложение для хранения паролей, работающее на стандартной библиотеке Python. Настройте и используйте за 60 секунд.
Вы когда-нибудь задумывались, сколько паролей приходится помнить среднестатистическому разработчику? Десятки, а то и сотни. Большинство решений этой проблемы делятся на два лагеря: облачные сервисы, где вы доверяете свои данные третьим лицам, или громоздкие десктопные приложения с обновлениями. Но что, если есть третий путь? Что, если можно запустить полноценный, шифрованный менеджер паролей на Python — без pip, без npm, без интернета? Именно это и делает Vault.
Vault — это веб-приложение для хранения паролей, которое живёт в одном Python-файле. Вы запускаете его, локальный сервер стартует, браузер открывается, и вы видите тёмный интерфейс, похожий на современный SaaS-продукт, а не на скрипт для хобби. Каждый пароль шифруется до того, как попасть на диск. Закрываете вкладку — данные в безопасности. Проект с открытым исходным кодом доступен на GitHub: github.com/jafartavana01/password-wallet.
Большинство разработчиков, создавая веб-приложение, тянутся за Flask, React, SQLite и несколькими библиотеками для шифрования, прежде чем написать строчку бизнес-логики. Vault построен на другом ограничении: только стандартная библиотека Python. Это решение было осознанным и формирует всё в проекте:
python password_wallet.pyЭто весь процесс установки.
Менеджер паролей, который небезопасен, — это не менеджер, а ответственность. Vault использует многоуровневый подход к защите данных, реализованный целиком на встроенных модулях hashlib и hmac.
Когда вы устанавливаете мастер-пароль впервые, Vault никогда его не сохраняет. Вместо этого он выводит и сохраняет верификатор PBKDF2-HMAC-SHA256 — однонаправленный хеш, вычисленный за 200 000 итераций с фиксированной солью. Исходный пароль невозможно восстановить из этого верификатора.
Каждая запись шифруется отдельно перед записью в файл wallet.json. Процесс выглядит так:
Когда вы открываете хранилище и загружаете записи, 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 создан для нескольких типов людей:
# Клонируйте репозиторий
git clone https://github.com/jafartavana01/password-wallet.git
cd password-wallet
# Запустите
python password_wallet.pyВаш браузер откроется автоматически. При первом запуске вас попросят установить мастер-пароль — выберите что-то надёжное и запишите в безопасное место. Механизма восстановления пароля по замыслу нет. Файл wallet.json создаётся автоматически в той же директории. Регулярно делайте его резервную копию.
Этот проект демонстрирует, что возможно, когда вы относитесь к ограничениям как к творческому вызову, а не как к преграде. Будущие направления могут включать:
Идеи и вклады приветствуются через GitHub Issues и Pull Requests.
Есть что-то удовлетворяющее в инструменте, который делает ровно одну вещь, делает её хорошо и не требует от вас ничего, кроме Python. Vault не пытается быть Bitwarden или 1Password. Он пытается быть тем, что вы можете передать любому, сказать python password_wallet.py, и через 60 секунд они будут хранить пароли в безопасности. Иногда это именно то, что нужно.
Практический вывод: Скачайте Vault прямо сейчас, установите мастер-пароль и перенесите свои пароли в локальное, шифрованное хранилище. Это займёт меньше минуты, и вы получите полный контроль над своими данными.
Хочешь закрепить знания на практике?
Решай задачи на Algolit — интерактивная платформа для обучения
Начать бесплатно →