https://github.com/iman-zamani/z-vault
A simple password manager built for personal use. This app securely stores and retrieves passwords for various accounts. It's designed to be minimalistic, focusing on ease of use and security.
https://github.com/iman-zamani/z-vault
cpp cross-platform password-manager qt qt5 security
Last synced: 4 months ago
JSON representation
A simple password manager built for personal use. This app securely stores and retrieves passwords for various accounts. It's designed to be minimalistic, focusing on ease of use and security.
- Host: GitHub
- URL: https://github.com/iman-zamani/z-vault
- Owner: iman-zamani
- License: mit
- Created: 2024-09-01T15:07:06.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-17T22:04:19.000Z (almost 2 years ago)
- Last Synced: 2025-03-09T12:55:42.338Z (over 1 year ago)
- Topics: cpp, cross-platform, password-manager, qt, qt5, security
- Language: C++
- Homepage:
- Size: 788 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Z-Vault
A simple password manager application built for personal use. This app allows you to securely store and retrieve your passwords. It is designed with a focus on simplicity, security, and ease of use.
## Features
- **Secure password storage**: Uses advanced encryption to ensure that all passwords are stored securely.
- **Minimalistic design**: Easy-to-use interface.
- **Memory cleanup on exit**: Automatically clears all password data from memory when the program closes, eliminating any potential security risks from leftover data in RAM.
## Security Features
- **Encryption Algorithms**: The application utilizes Crypto++'s AES algorithm with GCM mode to ensure confidentiality and authenticity of stored passwords.
- **Key Derivation**: Passwords are encrypted using keys derived from user passwords with PBKDF2 (Password-Based Key Derivation Function 2) and HMAC-SHA256, enhancing the security against brute-force attacks.
- **Secure Random Password Generation**: Includes a function to generate random passwords with high entropy, using Crypto++'s cryptographically secure random number generator.
## Compatibility
Z-Vault is designed to be cross-platform, with primary development on Linux using the X11 display server, which provides the optimal experience.
### Known Compatibility:
- **Linux**:
- **X11**: Fully supported and recommended.
- **Wayland**: Supported and performs well, but some GUI elements may appear differently than intended. There are no current plans to address these graphical differences.
- **Windows & macOS**: The application should function with appropriate setups, but has not been extensively tested on these platforms.
## Requirements
- CMake 3.5 or higher
- Qt 5 (Widgets module)
- C++11 compatible compiler
- Crypto++ library
## Building the Project
To build the project, follow these steps:
1. **Clone the Repository**:
```bash
git clone https://github.com/iman-zamani/Z-Vault.git
cd Z-Vault
```
2. **Create a Build Directory**:
```bash
mkdir build
cd build
```
3. **Configure the Project with CMake**:
```bash
cmake ..
```
4. **Build the Project**:
```bash
cmake --build .
```
5. **Run the Application**:
```bash
./Z-Vault
```
## Installing Crypto++ Library
To ensure the application compiles and runs successfully, you need to install the Crypto++ library:
### On Linux:
Install Crypto++ using the package manager:
#### Ubuntu:
```bash
sudo apt install libcrypto++-dev
```
#### Arch:
```bash
sudo pacman -S crypto++
```
### On Windows:
Use `vcpkg` to install Crypto++ easily:
1. **Install vcpkg**:
```cmd
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg.exe integrate install
```
2. **Install Crypto++**:
```cmd
./vcpkg install cryptopp:x64-windows
```
## Project Structure
```
Z-Vault/
├── README.md
├── src/
│ ├── main.cpp
│ ├── mainwindow.h
│ ├── encrypt.cpp
│ ├── encrypt.h
│ └── mainwindow.cpp
├── .gitignore
├── CMakeLists.txt
├── LICENSE
```
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more details.