A beginner-friendly, real-time Python project that demonstrates core concepts of modern cryptography using AES (symmetric encryption), RSA (asymmetric encryption),SHA256 (hashing) and Enky (custom XOR-based encryption). Designed to simulate real-world use cases like secure messaging, file encryption, and password hashing.
- Implement and understand core cryptographic techniques:
- AES for secure data encryption/decryption
- RSA for public/private key cryptography
- SHA256 for one-way data hashing
- Enky for experimental key-based XOR encryption
- Provide real-time user interaction
- Create a modular, scalable architecture
- Learn encryption workflow with file input/output and key handling
- Language: Python 3.8+
- Libraries Used:
cryptographyfor AES & RSAhashlibfor SHA256os,base64,jsonfor file/key management
- Structure: Modular folder system (
/modules) - Optional Tools:
PyCrypto,OpenSSL,tkinter(for GUI expansion)
- Generate and save AES key
- Encrypt user input messages
- Decrypt saved encrypted messages
- Use
Fernetfor secure symmetric encryption
- Generate RSA key pair (public/private)
- Encrypt a message using the public key
- Decrypt it using the private key
- Save/load RSA keys in
.pemformat
- Hash plain text securely
- Hash any file for integrity checking
- Compare original vs current hash for tamper detection
- Interactive menu-based encryption/decryption
- Key-dependent XOR encryption for learning purposes
- Supports text messages in real-time
- Optional multi-round encryption or shuffle can be added
- Fully reversible with the correct key
- Ideal for experimenting with custom symmetric encryption logic
| Use Case | Crypto Technique Used |
|---|---|
| Secure messaging | AES |
| Digital signatures | RSA |
| Password storage/verification | SHA256 |
| File tampering detection | SHA256 |
| Key-based access systems | RSA |
| Experimental learning cipher | Enky |
Enter message to encrypt: Hello Aakash
Encrypted: gAAAAABo...
Decrypted: Hello AakashEnter message to encrypt: SecretMessage
Encrypted with Public Key: b'...'
Decrypted with Private Key: SecretMessageInput text: AAKASH
Hash: ac98f72f...Enter message to encrypt: AAKASH
Enter key: 234
Encrypted (bytes): b'\xbagX\xc4\x87\xea'
Decrypted message: AAKASH✅ Add GUI with Tkinter or PyQt ✅ Support file encryption/decryption ✅ Add digital signature verification ✅ Use Salted Hashing for password security ✅ Store hash-key mapping securely in a DB (e.g., SQLite) ✅ Expand Enky with multiple rounds and key-based shuffling
pip install cryptography pycryptodome