A simple and secure client-server chat application built using Python. This project focuses on real-time messaging with encryption using RSA for key exchange and AES for securing messages.
Cipher Chat allows multiple users to chat with each other over a network in a secure way. Messages are encrypted while being sent and users need to log in before accessing the chat.
This project is mainly built to understand how secure communication and encryption work in real-world applications.
- 🔐 Secure message transmission using encryption
- 🔑 RSA used to safely exchange keys
- 🔒 AES used to encrypt chat messages
- 👤 Basic login system with username & password
- 💬 Real-time messaging between multiple users
- 🖥️ Simple GUI using
tkinter - 🧵 Multi-threaded server to handle many clients
Cipher-Chat/
│
├── server.py # Handles clients, authentication, message flow
├── client.py # GUI chat application
├── README.md # Documentation
- Client connects to server
- Server shares its RSA public key
- Client sends AES key securely using RSA
- Login details are sent securely
- After login, messages are encrypted and sent
Client → Encrypt → Server → Decrypt → Re-encrypt → Other Clients
👉 Important:
- Server can read messages (not end-to-end encrypted)
- Encryption is mainly for safe transmission
| Type | Algorithm | Why |
|---|---|---|
| Key Exchange | RSA | To safely share AES key |
| Message Encryption | AES | To encrypt chat messages |
| Password Hashing | SHA-256 | To store passwords securely |
Username Password
-------------------
arshad arshad123
sam sam123
muthu muthu123
pip install cryptographypython server.pypython client.py- Login using test users
- Start chatting
- Passwords are not stored as plain text
- Messages are encrypted while sending
- Server decrypts and sends to others
- Not full end-to-end encryption
- No database (users are hardcoded)
- No chat history
- Works mostly on local network
- No SSL/TLS
- Add database for users
- Private chats
- File sharing
- Make it fully end-to-end encrypted
- Better UI
🤝 Contributing
Contributions are welcome.
- Fork the repository
- Create a new branch
- Commit your changes
- Submit a Pull Request
📄 License
This project is open-source and available under the MIT License.
💡 Author
Developed as a secure communication system project to demonstrate practical implementation of networking and cryptography concepts in Python.
⭐ If you like this project, give it a star!