A secure chat application featuring room-based end-to-end encryption, designed to protect your communications from eavesdropping.
- 🔒 End-to-End Encryption using Fernet (AES-256)
- 🛡️ Room-Based Authentication with unique keys
- 🌐 Real-Time Broadcasting to multiple clients
- 🧵 Thread-Safe socket handling
- 🔑 PBKDF2 Key Derivation (1.2M iterations)
git clone https://github.com/pevinkumar10/CryptiHub.git
cd CryptiHub- In windows
pip3 install -r requirements.txt
- In Linux
apt-get install python3-tk
- Configuring Server:
- This is the default HOST and PORT configuration. If you need to change it , then modify it server/modules/core.py
HOST = '' PORT = 1234
- This is the default HOST and PORT configuration. If you need to change it , then modify it server/modules/core.py
- Configuring Client:
- This is the default HOST and PORT configuration. If you need to change it , then modify it client/client.py
HOST = '' PORT = 1234
- This is the default HOST and PORT configuration. If you need to change it , then modify it client/client.py
python3 server/server.pypython3 clients/client.py
-
Key Derivation
Uses PBKDF2-HMAC-SHA256 with:- 1,200,000 iterations
- 16-byte random salt per message
- 32-byte derived keys
-
Encryption
- AES-256 in GCM mode via Fernet
- Message-level salts prevent replay attacks
-
Authentication
- Clients must prove room ID to enter the chat
- Username collision prevention
- Implementing Diffie-Hellman key exchange
- Adding ephemeral session keys
- Client-side key storage
MIT © 2025 PevinKumar A