This project is currently under active development and not yet complete. Expect changes, bugs, and incomplete features.
A secure, cross-platform password manager built with Java, Maven, and JavaFX. Supports both command-line and modern graphical interfaces for managing passwords, notes, payment cards, and IDs — all encrypted with AES-GCM and PBKDF2.
- End-to-End Encryption: AES-GCM with PBKDF2 key derivation ensures maximum data protection.
- Dual Interface: Fully functional CLI and GUI with seamless interoperability.
- Multi-Account Support: Create and manage distinct vaults, each with optional PINs and security questions.
- Password Generator: Create strong, random passwords on demand.
- Audit Logs: Monitor access history and track changes.
- Auto-Lock: Vault automatically locks after a period of inactivity.
- Import/Export: Backup or migrate your vault easily.
- Platform-Independent: Works on Windows, macOS, and Linux.
- Java 17 (or newer)
- Maven 3.6+(or Gradle)
# Clone the repository
git clone https://github.com/yourusername/encrypted-vault.git
# Build with Maven
cd encrypted-vault
mvn clean package
Initialize your vault, manage entries, and retrieve secure data directly from the command line.
Modes & Shorthand:
Shorthand | Description |
---|---|
init |
Create A New Vault |
add |
Add A New Entry (e.g., password, note) |
get |
Retrieve an entry by name |
list |
List all entries in the vault |
delete |
Remove an entry from the vault |
lock |
Lock the current session |
# Example: Initialize a new vault
java -jar vault.jar init
# Add a new password entry
java -jar vault.jar add --type=password --name=Email --username=me@example.com --password=MySecureP@ss
# List all entries
java -jar vault.jar list
Launch a responsive and modern graphical interface with intuitive navigation, search, and filtering.
# Run the GUI
java -jar vault.jar gui
Including a LICENSE file clarifies how others may use, modify, and distribute your code. By choosing an open-source license such as MIT, you grant permission for use under defined terms while protecting your intellectual property and limiting liability. This project is licensed under the MIT License. See LICENSE for full details.
encrypted-vault/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/danielcullinane/vault/
│ │ │ ├── Account.java # Represents a user account/vault with metadata and authentication
│ │ │ ├── AddCmd.java # CLI command for adding a new vault entry
│ │ │ ├── App.java #
│ │ │ ├── AuditEvent.java # Logs and stores actions taken on the vault (e.g., add, delete)
│ │ │ ├── CryptoUtils.java # AES-GCM encryption/decryption and PBKDF2 utilities
│ │ │ ├── DeleteCmd.java # CLI command for deleting an existing vault entry
│ │ │ ├── Entry.java # Represents a single vault entry (e.g., password, note)
│ │ │ ├── GetCmd.java # CLI command for retrieving an entry from the vault
│ │ │ ├── InitCmd.java # CLI command for initializing a new encrypted vault
│ │ │ ├── ListCmd.java # CLI command for listing all stored entries
│ │ │ ├── VaultApp.java # Main JavaFX GUI application class
│ │ │ └── VaultStore.java # Core logic for storing, loading, and encrypting vault data
│ │ └── resources/
│ │ └── com/danielcullinane/vault/
│ │ ├── accounts.json # Sample or active vault accounts configuration file
│ │ └── vaultapp.css # Stylesheet for customizing the GUI (JavaFX)
├── pom.xml # Maven build configuration
└── README.md # Project documentation
- Breach report demo (current)
- Full Two-Factor Authentication (2FA) support
- Secure cloud sync and sharing
- Advanced breach monitoring with live threat intel
- Mobile companion app (Android/iOS)
- Improved audit/history logging
- Full UI accessibility support
- Daniel Cullinane – daniel.cullinane@outlook.com
- GitHub: @dancull