Skip to content

It contains a Java-based chat application with end-to-end encryption using RSA. It allows two clients to securely communicate over LAN or Wi-Fi, with the server facilitating connections without accessing the message content. The project showcases socket programming, threading, and cryptography to ensure private communication between users.

License

Notifications You must be signed in to change notification settings

ronaessi-28/Multithreaded-end-to-end-encryption-chatting-system-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multithreaded End-to-End Encrypted Cryptography-Based Real-Time Chat Application

This Java-based chat application allows two clients to communicate securely via LAN or Wi-Fi using RSA encryption. The server facilitates connections but cannot decipher messages between clients.

Features

  • End-to-end encryption using RSA.
  • Secure chat between two clients.
  • Multithreaded server capable of handling multiple connections.

Requirements

  • Java 8 or higher.
  • LAN or Wi-Fi for offline communication.

Modules:

  • java.net.* - Networking interface for sockets.
  • java.io.* - Stream handling.
  • java.math.BigInteger - Handles large integers for RSA encryption.
  • java.util.Random - For prime number generation in RSA.

Setup Instructions

  1. Clone or download the repository:

    git clone https://github.com/ronaessi-28/Multithreaded-end-to-end-encryption-chatting-system-.git
    
  2. Navigate to the project folder:

    cd Multithreaded-end-to-end-encryption-chatting-system-
    
  3. Compile all Java files:

    javac *.java
  4. First, run the Server.java:

    java Server
  5. On separate systems, run Client.java for each client:

    java Client
  6. Input the server IP and port (default: 42000), then enter your name.

  7. Start chatting securely!

How It Works

This project uses socket programming for communication between clients and RSA encryption to secure messages. Each client connects to the server, which facilitates message exchange without the ability to decrypt the content.

For RSA, two large prime numbers are generated, and keys are created. The public key is used to encrypt messages, and the private key decrypts them, ensuring end-to-end encryption.

About

It contains a Java-based chat application with end-to-end encryption using RSA. It allows two clients to securely communicate over LAN or Wi-Fi, with the server facilitating connections without accessing the message content. The project showcases socket programming, threading, and cryptography to ensure private communication between users.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages