https://github.com/bngiahuy/passwordmanagercpp
https://github.com/bngiahuy/passwordmanagercpp
cmake cpp password-manager
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/bngiahuy/passwordmanagercpp
- Owner: bngiahuy
- Created: 2025-07-11T04:33:53.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-11T10:02:49.000Z (12 months ago)
- Last Synced: 2025-07-11T10:56:17.334Z (12 months ago)
- Topics: cmake, cpp, password-manager
- Language: C++
- Homepage:
- Size: 179 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Password Manager CLI
## Introduction
Password Manager CLI is a simple, secure, and extensible command-line application for managing your passwords. It allows you to safely store, retrieve, and manage account credentials using strong encryption. The project is designed with modular architecture for easy future expansion (e.g., UI, cloud sync).
## Prerequisites
- Linux operating system
- CMake ≥ 3.16
- C++ compiler with C++17 support (e.g., g++ ≥ 9)
- OpenSSL development libraries (for AES encryption)
- Git (to clone the repository)
## Functional Requirements
- **Master Password Authentication:**
- First run: create and store a master password hash (SHA256).
- Subsequent runs: require correct master password to access the vault.
- **Account Storage:**
- Store service name, username, encrypted password, and notes for each account.
- All data is encrypted with AES-256-CBC using a key derived from the master password.
- **Account Management:**
- Add, search, list, and delete accounts.
- Copy username/password to clipboard (if supported).
- Generate random passwords with customizable options.
- **CLI Interface:**
- Simple menu-driven interface for all operations.
## Non-Functional Requirements
- **Security:**
- No plaintext password storage or display.
- Input masking for passwords.
- Random salt and IV for encryption.
- **Extensibility:**
- Modular codebase for easy future enhancements.
- **Reliability:**
- Unit tests for core modules (encryption, storage, logic).
- **Portability:**
- Runs on any Linux system with required dependencies.
## How to Install
1. **Clone the repository:**
```bash
git clone https://github.com/bngiahuy/PasswordManagerCPP.git
cd PasswordManagerCPP
```
2. **Install dependencies (if not already installed):**
```bash
sudo apt-get update
sudo apt-get install build-essential cmake libssl-dev
```
## How to Build and Run on Linux using CMake
1. **Create a build directory and configure the project:**
```bash
mkdir build
cd build
cmake ..
```
2. **Build the application:**
```bash
make
```
3. **Run the Password Manager CLI:**
```bash
./PasswordManager
```
4. **(Optional) Run tests:**
- If test executables are enabled in `CMakeLists.txt`, build and run them similarly.
---
**Note:**
- All data is stored locally in the `stored_data/` directory.
- The application uses strong cryptography (AES-256-CBC, SHA256) via OpenSSL.
- For more details, see the source code and comments.