Skip to content

ElonCoding/Data-Encryption-and-Decryption-Tool-Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

3 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CryptoTool - Comprehensive Encryption Suite

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.

πŸš€ Features

Core Encryption Capabilities

  • 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

Python Backend Features

  • 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

Web Version Features

  • 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

πŸ“ Project Structure

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

πŸ› οΈ Installation & Setup

Python Backend

  1. Install Python 3.7 or higher
  2. Install dependencies:
    cd Backend
    pip install -r requirements.txt
  3. Run the application:
    python encryption_tool.py

Web Version

Option 1: Direct File Access

  1. Download all files to a local directory
  2. Open index.html in a modern web browser
  3. Start using the encryption tools immediately

Option 2: Local Web Server (Recommended)

# 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

Option 3: Live Server (VS Code)

  1. Install "Live Server" extension in VS Code
  2. Right-click on index.html
  3. Select "Open with Live Server"

πŸ” Algorithms & Security

AES (Advanced Encryption Standard)

  • 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

RSA (Rivest-Shamir-Adleman)

  • Type: Asymmetric encryption algorithm
  • Key Sizes: 2048, 3072, or 4096 bits
  • Padding: OAEP padding scheme
  • Use Case: Secure key exchange, small data encryption

Security Features

  • 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

🎯 Usage Instructions

Web Version

Text Encryption

  1. Navigate to the AES or RSA section
  2. Generate or load encryption keys
  3. Enter text in the input area
  4. Click encrypt/decrypt buttons
  5. Copy results to clipboard

File Encryption

  1. Go to the Files section
  2. Drag and drop files or click to browse
  3. Select encryption algorithm (AES or RSA)
  4. Click encrypt/decrypt files
  5. Download processed files automatically

Performance Testing

  1. Visit the Compare section
  2. Select test data size
  3. Click "Run Comparison"
  4. View detailed benchmark results

Python Backend

Run the GUI application and use the intuitive interface to:

  • Generate encryption keys
  • Encrypt/decrypt text messages
  • Process files with encryption
  • Compare algorithm performance

πŸ”§ Browser Compatibility (Web Version)

  • Chrome: 80+ (Recommended)
  • Firefox: 75+
  • Safari: 13+
  • Edge: 80+
  • Mobile Browsers: iOS Safari 13+, Chrome Mobile 80+

πŸ“Š Performance Comparison

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

πŸŽ“ Educational Value

Learning Objectives

  • 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

Best Practices Learned

  • Secure key management
  • Algorithm selection criteria
  • Performance optimization techniques
  • Security implementation standards

πŸ”’ Security Considerations

Client-Side Security (Web Version)

  • 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

Production Use

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

🀝 Contributing

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

πŸ“„ License

This project is open source and available for educational purposes.

⚠️ Disclaimer

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! πŸ”