Консольное приложение на Go для безопасного хранения и управления аккаунтами (логин, пароль, URL) с возможностями поиска, удаления и подсчёта записей.
Приложение реализует простой менеджер паролей с использованием локального JSON-файла для хранения данных. Пароли шифруются перед сохранением для повышения безопасности. Поддерживаются основные операции:
Добавление нового аккаунта Поиск аккаунтов по URL и логину Удаление аккаунта по URL Просмотр количества сохранённых аккаунтов
Go (Golang)
Локальная база данных в виде JSON-файла (data.vault), с возможностью расширения для работы с БД
Шифрование паролей (пакет encrypter)
Цветной вывод в консоли (github.com/fatih/color)
Загрузка конфигурации из .env (github.com/joho/godotenv)
-
Клонируйте репозиторий:
git clone https://github.com/DKuzibaev/PasswordSaver.git cd PasswordSaver -
Создайте файл .env в папке configs с необходимыми переменными окружения: Сгенерируйте ключ шифрования (256 бит) по ссылке: https://acte.ltd/utils/randomkeygen Скопируйте сгенерированный ключ и добавьте его в файл configs/.env в следующем формате:
KEY=ваш_сгенерированный_ключ_256_бит
go run cmd/password-saver/main.go
После запуска приложение отображает меню с доступными действиями:
- Создать аккаунт — ввод логина, пароля и URL.
- Найти аккаунт по URL — поиск всех аккаунтов, URL которых содержат введённую строку.
- Найти аккаунт по логину — поиск всех аккаунтов по совпадению логина.
- Удалить аккаунт по URL — удаление аккаунта по точному URL.
- Показать количество сохранённых аккаунтов — отображение общего числа аккаунтов.
- Выход — завершение работы программы.
PasswordSaver/
├── bin/ # Компилированные бинарные файлы (если есть)
├── cmd/ # Входные точки приложения (main.go и прочие)
├── configs/ # Конфигурационные файлы, включая .env
├── internal/ # Внутренние пакеты проекта (бизнес-логика)
│ ├── account/ # Логика работы с аккаунтами, валидация
│ ├── cloud/ # (пустой или для будущей интеграции с облаком)
│ ├── encrypter/ # Шифрование и дешифрование паролей
│ ├── files/ # Работа с файловой системой и хранением данных (JSON)
│ └── output/ # Вывод сообщений и обработка ошибок
├── data.vault # Файл с зашифрованными аккаунтами (локальная база)
├── .gitignore # Игнорируемые файлы Git
├── go.mod # Модули Go
├── go.sum # Контрольные суммы зависимостей
└── README.md # Документация проекта
Хранение данных в JSON-файле с автоматическим созданием при отсутствии. Простая и удобная консольная навигация с цветным интерфейсом. Использование функциональных коллбеков для поиска. Обработка ошибок с информативными сообщениями для пользователя.