Hide files and messages inside ordinary images — protected by encryption that even quantum computers can't break.
Download · Features · How It Works · Security · Build
Clean, intuitive interface for military-grade steganography
# 1. Download from releases (or build from source)
# 2. Open QuantHide
# 3. Drag an image → Type your secret → Set password → Click Encode
# 4. Share the image anywhere — it looks completely normalThat's it. Your secret is now hidden inside an innocent-looking image, protected by quantum-resistant encryption.
|
Windows 10/11 |
Linux |
macOS 11+ |
No account required. No data collected. Ever.
Your data is protected by CRYSTALS-Kyber1024 — the encryption algorithm selected by NIST to defend against quantum computer attacks. Combined with ChaCha20-Poly1305 and Argon2id, your secrets are safe for decades.
- Text messages — Secret notes, passwords, instructions
- Files up to 4MB — Documents, PDFs, archives, any file type
- Invisible embedding — LSB steganography that's undetectable to the human eye
Decoy Mode: Set two passwords — one reveals innocent content, the other reveals the real secret. Even under coercion, you can hand over the decoy password.
Password "vacation2024" → "Can't wait for the trip!"
Password "r3alP@ssw0rd" → [Your actual secret]
Distribute your secret across 2, 3, or more images. All parts are required to reconstruct the message — lose one, and the data is gone forever.
| Feature | Description |
|---|---|
| Keyfile Support | Add a second authentication factor beyond passwords |
| Image Comparison | Detect if an image contains hidden data |
| Format Conversion | Convert between PNG, JPEG, and WebP |
| Metadata Stripping | Remove EXIF data (GPS, device info, timestamps) |
| Dark/Light Themes | Easy on the eyes, day or night |
┌─────────────────────────────────────────────────────────────┐
│ ENCRYPTION PIPELINE │
├─────────────────────────────────────────────────────────────┤
│ │
│ Password ──► Argon2id ──► Kyber1024 ──► ChaCha20-Poly1305 │
│ │ │ │ │
│ 64MB RAM Post-Quantum Authenticated │
│ 16 passes Key Exchange Encryption │
│ │
└─────────────────────────────────────────────────────────────┘
| Threat | Protection |
|---|---|
| Brute Force | Argon2id requires 64MB RAM per attempt — infeasible at scale |
| GPU Cracking | Memory-hard algorithm defeats parallel processing attacks |
| Quantum Computers | Kyber1024 uses lattice cryptography immune to Shor's algorithm |
| Statistical Analysis | Random padding disrupts detection patterns |
| Component | Algorithm | Parameters |
|---|---|---|
| Key Encapsulation | CRYSTALS-Kyber1024 | NIST Level 5, 256-bit shared secret |
| Symmetric Encryption | ChaCha20-Poly1305 | 256-bit key, 96-bit nonce, AEAD |
| Key Derivation | Argon2id | 64MB memory, 16 iterations, 4 lanes |
| Integrity | SHA-256 | For verification |
- Load a cover image — Any PNG, JPEG, or WebP
- Enter your secret — Text or select a file (up to 4MB)
- Set a strong password — Strength meter guides you
- Click Encode — Save your steganographic image
- Load the encoded image
- Enter the password
- Click Decode — Your secret is revealed
| Image Resolution | Maximum Hidden Data |
|---|---|
| 1920 × 1080 (Full HD) | ~760 KB |
| 2560 × 1440 (2K) | ~1.3 MB |
| 3840 × 2160 (4K) | ~3 MB |
| 4000 × 3000 | ~4.3 MB |
Formula: (width × height × 3) ÷ 8 bytes
- Use strong, unique passwords — Combine with keyfiles for critical data
- Never reuse cover images — Each image should be used once
- Share as PNG — JPEG compression destroys hidden data
- Use Decoy Mode for sensitive scenarios — Always have a plausible cover story
- Keep keyfiles separate — Store them in a different location than passwords
- Node.js 18+
- Rust 1.70+
- Tauri CLI 2.0+
# Clone the repository
git clone https://github.com/reschjonas/QuantHide.git
cd QuantHide
# Install dependencies
npm install
# Development mode (with hot reload)
npm run tauri dev
# Production build
npm run tauri build| Platform | Location |
|---|---|
| Windows | src-tauri/target/release/bundle/msi/ |
| Linux | src-tauri/target/release/bundle/deb/ |
| macOS | src-tauri/target/release/bundle/dmg/ |
QuantHide/
├── src/ # Frontend (Vanilla JS)
│ ├── index.html # Application UI
│ ├── styles.css # Theming (dark/light)
│ └── js/
│ ├── features/ # encode, decode, decoy, split...
│ └── ui/ # modals, toast, loading...
│
├── src-tauri/ # Backend (Rust)
│ └── src/
│ ├── lib.rs # Tauri command handlers
│ ├── crypto.rs # Kyber + ChaCha20 + Argon2
│ └── stego.rs # LSB steganography engine
│
└── docs/ # Documentation & assets
Contributions are welcome! Here's how:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow existing code style
- Test on Windows, Linux, and macOS
- Update documentation for user-facing changes
- Add tests for cryptographic features
MIT License — see LICENSE for details.
Free for personal and commercial use.
- CRYSTALS-Kyber — Post-quantum cryptography
- Tauri — Native app framework
- RustCrypto — Cryptographic primitives
- Argon2 — Password hashing