Skip to content

arshad1312/Cipher_Chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🔐 Cipher Chat

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.


📌 Overview

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.


🚀 Features

  • 🔐 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

🏗️ Project Structure

Cipher-Chat/
│
├── server.py       # Handles clients, authentication, message flow
├── client.py       # GUI chat application
├── README.md       # Documentation

🧠 How It Works (Simple)

  1. Client connects to server
  2. Server shares its RSA public key
  3. Client sends AES key securely using RSA
  4. Login details are sent securely
  5. After login, messages are encrypted and sent

🔄 Message Flow

Client → Encrypt → Server → Decrypt → Re-encrypt → Other Clients

👉 Important:

  • Server can read messages (not end-to-end encrypted)
  • Encryption is mainly for safe transmission

🔐 Encryption Used

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

👥 Test Users

Username   Password
-------------------
arshad     arshad123
sam        sam123
muthu      muthu123

⚙️ Setup

Install dependency

pip install cryptography

▶️ Run the Project

Start Server

python server.py

Start Client

python client.py
  • Login using test users
  • Start chatting

🛡️ Notes

  • Passwords are not stored as plain text
  • Messages are encrypted while sending
  • Server decrypts and sends to others
  • Not full end-to-end encryption

⚠️ Limitations

  • No database (users are hardcoded)
  • No chat history
  • Works mostly on local network
  • No SSL/TLS

🔮 Future Ideas

  • 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!

About

Secure multi-client chat application in Python using RSA and AES encryption with a Tkinter GUI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages