A comprehensive encryption toolkit featuring both a Python backend application and a modern responsive web interface for encrypting and decrypting messages and files using industry-standard AES and RSA algorithms.
- AES Encryption: Advanced Encryption Standard with 256-bit keys
- RSA Encryption: Public-key cryptography with key sizes up to 4096 bits
- File Support: Encrypt and decrypt files of any type
- Performance Comparison: Benchmark and compare encryption/decryption speeds
- Security Analysis: Analyze and compare security features of different algorithms
- GUI Interface: User-friendly graphical interface with tkinter
- Command-line Interface: Direct Python script execution
- Batch Processing: Handle multiple files efficiently
- Advanced Configuration: Customizable encryption parameters
- Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
- Modern UI: Clean, intuitive interface with smooth animations
- Dark/Light Mode: Automatic theme detection based on system preferences
- Real-time Feedback: Loading indicators and success notifications
- Drag & Drop: Intuitive file upload functionality
- Progress Tracking: Real-time encryption/decryption progress bars
Data Encrytion and Decrytion Tool/
βββ Backend/ # Python backend application
β βββ encryption_tool.py # Main Python application
β βββ demo.py # Demo script
β βββ requirements.txt # Python dependencies
β βββ TECHNICAL_DOCUMENTATION.md
βββ index.html # Web interface main file
βββ script.js # Web application JavaScript
βββ styles.css # Web application styling
βββ README_WEB.md # Detailed web version documentation
βββ PROJECT_SUMMARY.md # Project overview
- Install Python 3.7 or higher
- Install dependencies:
cd Backend pip install -r requirements.txt - Run the application:
python encryption_tool.py
- Download all files to a local directory
- Open
index.htmlin a modern web browser - Start using the encryption tools immediately
# Using Python 3
python -m http.server 8000
# Using Node.js (if you have http-server installed)
npx http-server
# Then open http://localhost:8000 in your browser- Install "Live Server" extension in VS Code
- Right-click on
index.html - Select "Open with Live Server"
- Type: Symmetric encryption algorithm
- Key Size: 256-bit keys
- Mode: CBC mode with random IV
- Speed: Fast encryption/decryption
- Use Case: Large files, bulk data encryption
- Type: Asymmetric encryption algorithm
- Key Sizes: 2048, 3072, or 4096 bits
- Padding: OAEP padding scheme
- Use Case: Secure key exchange, small data encryption
- Secure Random Generation: Cryptographically secure random key generation
- Password-based Key Derivation: PBKDF2 for password-based keys
- Salt Generation: Additional security layer
- Client-side Processing: Web version processes all data locally
- No Data Storage: No user data is permanently stored
- Navigate to the AES or RSA section
- Generate or load encryption keys
- Enter text in the input area
- Click encrypt/decrypt buttons
- Copy results to clipboard
- Go to the Files section
- Drag and drop files or click to browse
- Select encryption algorithm (AES or RSA)
- Click encrypt/decrypt files
- Download processed files automatically
- Visit the Compare section
- Select test data size
- Click "Run Comparison"
- View detailed benchmark results
Run the GUI application and use the intuitive interface to:
- Generate encryption keys
- Encrypt/decrypt text messages
- Process files with encryption
- Compare algorithm performance
- Chrome: 80+ (Recommended)
- Firefox: 75+
- Safari: 13+
- Edge: 80+
- Mobile Browsers: iOS Safari 13+, Chrome Mobile 80+
Both versions provide comprehensive benchmarks for:
- Encryption speed: MB/s processing rate
- Decryption speed: MB/s processing rate
- Key generation time: Time to generate secure keys
- Memory usage: Resource consumption analysis
- File processing: Batch operation efficiency
- Hands-on experience with cryptographic algorithms
- Understanding of symmetric vs asymmetric encryption
- Knowledge of data confidentiality and integrity
- Ability to evaluate security vs performance trade-offs
- Practical cryptography applications
- Secure key management
- Algorithm selection criteria
- Performance optimization techniques
- Security implementation standards
- All encryption happens locally in your browser
- No data is sent to external servers
- Keys are generated using secure random number generators
- Files are processed in memory without permanent storage
This tool is for educational and personal use. For production applications involving sensitive data:
- Use professionally audited cryptographic libraries
- Implement proper key management systems
- Follow industry security standards
- Regular security audits recommended
This is an educational project. Feel free to:
- Report bugs or issues
- Suggest improvements
- Fork and modify for your own learning
- Share with others interested in cryptography
This project is open source and available for educational purposes.
While this tool implements industry-standard algorithms (AES-256-CBC, RSA-OAEP), it is intended for educational and personal use. Always use professionally audited cryptographic libraries and follow security best practices for production applications involving sensitive data.
Happy Encrypting! π