A secure, modern file encryption application with dark humor, built with Tauri, Rust, and React.
- AES-256-GCM Encryption: Military-grade authenticated encryption
- Argon2id Key Derivation: Memory-hard password hashing with 100,000 iterations
- Secure Random Generation: Cryptographically secure random number generation
- Integrity Verification: SHA-256 integrity checks for encrypted data
- Memory Protection: Secure memory handling with zeroization
- Compression Support: Optional data compression for efficiency
- Robust File Format Detection: Intelligent encrypted file recognition
- Batch Decryption: Process multiple files simultaneously
- Progress Tracking: Real-time progress with time estimates
- Error Recovery: Comprehensive error handling and recovery mechanisms
- Password Verification: Test passwords without full decryption
- File Integrity Checks: Verify encrypted file integrity
- Dark Theme: Beautiful dark interface with glass morphism effects
- Drag & Drop: Intuitive file selection with visual feedback
- Real-time Progress: Live progress indicators with contextual humor
- Responsive Design: Works seamlessly across different screen sizes
- Accessibility: Full keyboard navigation and screen reader support
- Cross-platform: Native performance on Windows, macOS, and Linux
- Contextual Jokes: Humor that appears during specific operations
- Progress Humor: Entertaining messages during long operations
- Error Humor: Light-hearted error messages to reduce frustration
- Success Humor: Celebratory messages for completed operations
- Tauri: Cross-platform desktop application framework
- AES-GCM: Authenticated encryption with associated data
- Argon2id: Memory-hard password hashing
- Tokio: Asynchronous runtime for non-blocking operations
- Memmap2: Memory-mapped file operations for large files
- Walkdir: Efficient directory traversal
- React 18: Modern React with hooks and concurrent features
- TypeScript: Type-safe development
- Tailwind CSS: Utility-first CSS framework
- Lucide React: Beautiful icon library
- React Hot Toast: Elegant toast notifications
- React Dropzone: Drag and drop file handling
- Node.js 18+ and npm 9+
- Rust 1.70+ and Cargo
- Tauri CLI:
npm install -g @tauri-apps/cli
-
Clone the repository
git clone https://github.com/drdeeks/File-Encryptor.git cd File-Encryptor
-
Install dependencies
npm install
-
Run in development mode
npm run tauri:dev
-
Build the application
npm run tauri:build
-
Find the executable
- Windows:
src-tauri/target/release/bundle/msi/
- macOS:
src-tauri/target/release/bundle/dmg/
- Linux:
src-tauri/target/release/bundle/appimage/
- Windows:
- Select a file using drag & drop or the file picker
- Enter a strong password (minimum 8 characters)
- Choose an action for the original file:
- Keep Original: Preserve the original file
- Delete Original: Remove the original file
- Erase Traces: Overwrite with random data before deletion
- Click "Encrypt File" and enjoy the dark humor
- Select an encrypted file (.enc extension)
- Enter the password (hope you remember it!)
- Click "Decrypt File" to restore your data
- Choose a directory to scan for encrypted files
- Browse and search through your encrypted files
- Sort by name, date, or size for easy organization
- Quick actions: Decrypt, show in folder, or delete files
- Algorithm: AES-256-GCM (Galois/Counter Mode)
- Key Derivation: Argon2id with 100,000 iterations
- Memory Cost: 64MB for memory-hard operations
- Salt Length: 32 bytes of cryptographically secure random data
- Nonce: 12 bytes for AES-GCM
- Authentication Tag: 16 bytes for integrity verification
- Zeroization: Sensitive data is securely cleared from memory
- Constant-time Operations: Protection against timing attacks
- Input Validation: Comprehensive validation of all inputs
- Error Handling: Secure error messages that don't leak information
- File Permissions: Proper handling of file system permissions
[8 bytes] Magic Header: "FE2.0\0\0\0"
[1024 bytes] Metadata (JSON with padding)
[N bytes] Encrypted Data
- Use strong passwords: Minimum 8 characters, longer is better
- Don't reuse passwords: Each file should have a unique password
- Store passwords securely: Consider using a password manager
- Backup passwords: Losing the password means losing the data forever
- Backup important files: Always keep backups of critical data
- Test decryption: Verify you can decrypt files after encryption
- Secure storage: Store encrypted files in secure locations
- Regular updates: Keep the application updated for security patches
"File not found" error
- Ensure the file path is correct and accessible
- Check file permissions on your system
"Invalid password" error
- Double-check the password spelling and case
- Ensure you're using the correct password for the file
"Permission denied" error
- Run the application with appropriate permissions
- Check if the file is being used by another application
"Disk space insufficient" error
- Ensure you have enough free disk space
- Encrypted files may be larger than the original
- Large files: The application can handle files up to several GB
- Batch operations: Use the file manager for multiple files
- Compression: Enable compression for better storage efficiency
- Memory usage: Close other applications for very large files
We welcome contributions! Please see our Contributing Guidelines for details.
- Follow Rust best practices and idioms
- Use TypeScript for frontend code
- Write comprehensive tests
- Follow security-first principles
- Add appropriate dark humor to new features
This project is licensed under the MIT License - see the LICENSE file for details.
- Tauri Team: For the amazing cross-platform framework
- Rust Crypto Team: For the excellent cryptographic libraries
- React Team: For the powerful frontend framework
- Dark Humor Community: For inspiration on making security fun
- Repository: https://github.com/drdeeks/File-Encryptor
- Issues: https://github.com/drdeeks/File-Encryptor/issues
- Discussions: https://github.com/drdeeks/File-Encryptor/discussions
- Releases: https://github.com/drdeeks/File-Encryptor/releases
- Complete rewrite with Tauri and Rust
- Modern React TypeScript frontend
- Enhanced security with AES-256-GCM
- Improved decryption capabilities
- Dark humor integration
- Cross-platform native performance
- Original Electron-based implementation
- Basic AES-256-CBC encryption
- Simple React frontend
Remember: Your secrets are only as safe as your password. Choose wisely, and may the dark humor be with you! ππ