**Менеджер паролей на чистом JavaScript с шифрованием AES-256-GCM: как я сделал и почем...
**Менеджер паролей на чистом JavaScript с шифрованием AES-256-GCM: как я сделал и почему это круче KeePass** --------------------- Привет, подписчики! На связи команда © DevGeek.iT, 2026. --------------------- Я обычно делаю так: если мне нужен инструмент, который должен быть максимально простым и безопасным, я пишу его сам. Так родился мой менеджер паролей на чистом JavaScript. Никаких серверов, никаких облаков — только твой браузер и localStorage. И да, он реально работает. --------------------- В отличие от KeePass, который требует установки, синхронизации файлов и вечного поиска плагинов, мой менеджер — это один HTML-файл. Открыл, ввёл пароль, пользуешься. Всё шифруется на лету через Web Crypto API: AES-256-GCM, соль, PBKDF2 с 100 000 итераций. Мастер-пароль никогда не сохраняется — даже в памяти после блокировки. --------------------- На практике это выглядит так: ты создаёшь хранилище, придумываешь мастер-пароль. После этого все твои записи (сервис, логин, пароль, заметки) лежат в зашифрованном JSON. В localStorage хранятся только соль и зашифрованный слепок. При разблокировке ключ вычисляется заново и расшифровывает данные в оперативной памяти. Никаких открытых паролей на диске. --------------------- Вот пример кода, который отвечает за деривацию ключа. Это сердце системы: ```javascript async function deriveKey(password, salt) { const baseKey = await crypto.subtle.importKey( 'raw', new TextEncoder().encode(password), 'PBKDF2', false, ['deriveKey'] ); return crypto.subtle.deriveKey( { name: 'PBKDF2', salt, iterations: 100000, hash: 'SHA-256' }, baseKey, { name: 'AES-GCM', length: 256 }, false, ['encrypt', 'decrypt'] ); } ``` Этот код выполняется каждый раз при вводе пароля. Если пароль неверный — расшифровка падает с ошибкой. Всё честно, никаких обходных путей. --------------------- **Фишка от DevGeek:** я добавил автоматический экспорт зашифрованного бэкапа в JSON. Ты просто нажимаешь «Экспорт» — и скачиваешь файл, который можно импортировать на другом устройстве. При этом сам мастер-пароль не передаётся — ты вводишь его заново при импорте. Это удобнее, чем таскать с собой файл базы KeePass и искать клиент под каждую ОС. --------------------- **На что обратить внимание:** если ты потеряешь мастер-пароль — данные не восстановить. Это не баг, это фича архитектуры. Никакого «сброса пароля» по почте. Поэтому я всегда советую делать бэкап и хранить пароль в надёжном месте. И ещё: localStorage привязан к домену/файлу. Если ты запускаешь локально, данные не смешиваются с другими сайтами. Но при очистке браузера они пропадают — если нет бэкапа. --------------------- Главное преимущество перед KeePass — мобильность. Мой менеджер работает в любом браузере, на любом устройстве, без установки. Ты можешь носить его на флешке и открывать где угодно. А KeePass привязан к десктопу или требует сторонних приложений на мобилках. Да, у KeePass есть плагины и синхронизация через облако, но зачем усложнять, если можно просто загрузить один HTML-файл и работать? --------------------- Я сделал интерфейс минималистичным: карточки с сервисами, поле поиска, кнопки «Добавить», «Редактировать», «Скопировать пароль». Пароли скрыты точками, раскрываются по клику на иконку замка. Всё интуитивно, никакого оверхеда. Это то, чего не хватает в KeePass — лёгкости и скорости. --------------------- Так что если ты ищешь простой, безопасный и портативный менеджер паролей — попробуй мой вариант. Он уже лежит у меня на GitHub, и ты можешь адаптировать его под себя. Пробуйте переходите: https://devgeekit.github.io/Manager-Password/ В следующем разборе покажу, как добавить синхронизацию через WebDAV или облако без потери безопасности. Оставайся на связи! --------------------- • 💳 Понравилась статья? • Поддержать канал можно здесь:👇 https://yoomoney.ru/fundraise/1FR6ECUSV0I.260210 И здесь:👇 https://yoomoney.ru/to/4100118121919268 --------