A secure desktop application with GTK-based GUI for creating encrypted file containers to protect your sensitive data using AES-256 encryption.
- Military-Grade Encryption: AES-256-CBC with PBKDF2 key derivation.
- Secure Storage: Files are encrypted with unique salts and initialization vectors (IVs).
- Intuitive CLI Menu: Easily create, manage, and extract files from containers.
- Cross-Platform: Runs anywhere Java is supported (requires GUI environment for file dialogs).
- Batch Operations: Add or extract multiple files at once.
-
Requirements:
- Java 17 or later
- GUI environment (GTK look-and-feel preferred)
-
Command-line setup:
# Navigate to project root directory cd path/to/blackbox-project # Compile from source javac src/main/java/*.java -d out/ # Run the application java -cp out/ BlackBox
-
IntelliJ IDEA (Recommended for Development):
- Open IntelliJ and select "Open Project"
- Navigate to the
src/main/java
directory - Configure SDK:
- File > Project Structure > Project SDK: Java 17+
- Create run configuration:
- Main class:
BlackBox
- Working directory: Project root
- Main class:
- Build and run using green arrow (
▶️ ) in toolbar
- Click "Create New Container" in the main window.
- Choose a save location via the file dialog.
- Enter a strong password when prompted.
- Your encrypted container file (e.g.,
my_vault.dat
) will be created.
- Open your container using "Open Existing Container".
- Click "Add Files" and select files through the multi-file dialog.
- Files are encrypted and stored immediately upon selection.
- Click "Extract File" in the container management window.
- Select a file from the displayed list.
- Choose a save location through the file dialog.
Use "Save and Close" to securely write changes and exit the container session.
- Encryption: AES-256 in CBC mode with PKCS5 padding.
- Key Derivation: PBKDF2WithHmacSHA256 (65,536 iterations).
- Salting: 16-byte random salt per container.
- IV: 16-byte random initialization vector per session.
- 🔑 Password Strength: Your password is the only key to decrypt files. Loss = irreversible data loss!
- 🔒 Container Integrity: Tampering with the container file will corrupt all data.
- 🛡️ Best Practices: Use this for personal files only. Avoid storing highly sensitive data without additional safeguards.
- Project Structure:
blackbox-project/ └── src/ └── main/ └── java/ ├── BlackBox.java ├── ContainerManager.java ├── EncryptionUtil.java └── StoredFile.java
- Recommended IDE: IntelliJ IDEA with built-in Java support
- Dependencies: No external libraries required (pure Java implementation)
- Testing: Run directly from IDE for debug console access
- Requires proper source directory setup for command-line compilation
- IntelliJ automatically handles classpath - manual setup needed for CLI execution
- Requires a GUI environment (GTK look and feel preferred for best experience).
- Maximum file size limited by available memory.
- Not designed for concurrent access.
- Fallback to system theme if GTK is unavailable.
Distributed under the MIT License. See LICENSE
file for details.
💻 Contribute: Issues and PRs welcome!
🌟 Star this project if it helps you keep data safe!