Введение
Хотел давно написать простенький парольный менеджер на C#, но было очень лень его вспоминать. Изначально использовал ChatGpt, бесплатная версия написала код но приложение было очень примитивное. Далее использовал DeepSeek, DeepSeek справился лучше (хотя платный ChatGpt сделал бы не хуже), но финальный проект был создан с помощью Gemini 3 Pro по подписке через Antigravity.
Первый запуск
При первом запуске будет запрос на создание мастер пароля, также этот мастер пароль будет выступать в роле ключа шифрования + дополнительно будет использоваться «соль» для более надёжного шифрования. Перед сборкой «соль» можно будет изменить, в таком случаи для того что бы расшифровать пароли необходим не только мастер пароль но и само приложение (приложение можно таскать с собой на зашифрованной «флешке», если совсем параноить), так как в собранном экземпляре «соль» будет отличаться от той что в исходном коде (файл EncryptionHelper.cs, PasswordManagerSalt2026), дополнительно для надёжности можно изменить кол-во итераций для генерации ключей (это необходимо сделать в функциях Encrypt,Decrypt, EncryptChaCha и DecryptChaCha значение должно быть везде одинаковое), в исходном коде указано 100000 итераций, я себе скомпилировал экземпляр с 1-м миллионом итераций (может замедлить открытие приложения и групп).

Все пароли, логины и URL хранятся в реестре (\HKEY_CURRENT_USER\Software\PasswordManager) текущего пользователя в зашифрованном виде (одинаковые пароли выглядят в зашифрованном виде по разному).

После создания мастер пароля приложение будет свёрнуто в системный "трей".
Основное окно приложения

В левой части основного окна приложения можно создать неограниченное кол-во групп, а также подгрупп, в данных группах можно создать неограниченное кол-во связок логина и пароля (количество не ограничено, если только ограничится размером переменной), копировать любой элемент, удалить созданные связки, показать пароль, открыть URL, измени уже существующие логины и пароли. Имеется функция Drag&Drop для перетаскивания связок логина и пароля. Также можно экспортировать/импортировать связки в открытом и зашифрованном виде, а также можно экспортировать всю ветку реестра.
В меню настроек можно дополнительно включить шифрование логинов и URL, выставить таймер для очистки ОЗУ после копирования пароля, а также выбрать алгоритм шифрования (AES256 или ChaCha20-Poly1305 - данный параметр лучше выбрать сразу после первого использования так как в дальнейшем если паролей накопится довольно много то перешифровка может занять много времени особенно если выбрано 1000000 итераций и очень длинная "соль")

Есть поддержка тем (системной, тёмной, светлой)

Генератор паролей

Присутствует генератор паролей, сгенерировать пароли возможно от 4 и до 128 символов (также всё это меняется в исходном коде). Для генерации паролей используется класс System.Security.Cryptography.RandomNumberGenerator в котором генерируются реально случайные числа.
После закрытия приложения остаётся значок в системном (полностью приложение закрывается из системного трея или из меню файл) «трее», при вызове приложения из системного «трея» необходимо повторно ввести мастер пароль.
Сборка
Для сборки приложения необходимо установить Visual Studio Community 2022, а также .net Framework 8.0, на Intel Core i5 12400 сборка происходит за несколько секунд.

Ссылка на исходный код
Заключение
Очень простое и удобно решения для хранения паролей, активно использую на работе для срытия паролей при «шаринге» экрана и взглядов из за спины :-)
