A secure real-time messaging application developed in Java using Socket Programming, Java Swing, and a hybrid cryptographic approach combining RSA and DES for end-to-end encrypted communication.
SecureChat enables two users to exchange messages securely over a network. The application uses RSA (2048-bit) to securely exchange a DES session key, after which all chat messages are encrypted using DES/CBC/PKCS5Padding before transmission.
The project demonstrates the implementation of hybrid encryption, client-server communication, and desktop GUI development.
- End-to-End Encrypted Messaging
- RSA-2048 Secure Key Exchange
- DES/CBC/PKCS5Padding Message Encryption
- Real-Time Client-Server Communication
- Java Swing GUI
- Multiple Client Support
- Socket Programming using TCP
- Encryption & Decryption Visualization
- Secure Message Transmission
- Java
- Java Swing
- Java Socket Programming
- RSA Cryptography
- DES Encryption
- Object Serialization
- Multithreading
SecureChat/
│
├── src/
│ └── securechat/
│ ├── Client.java
│ ├── Server.java
│ ├── Message.java
│ ├── RSAUtil.java
│ ├── DESUtil.java
│ └── EncryptionDialog.java
│
├── screenshots/
│ ├── Client.png
│ ├── Server.png
│ ├── Login.png
│ ├── Alice Keys.png
│ ├── Bob Keys.png
│ ├── Chat.png
│ │
│ ├── Encryption/
│ │ ├── Plaintext.png
│ │ ├── DES_Encryption.png
│ │ ├── RSA_Key_Wrapping.png
│ │ └── Ciphertext.png
│ │
│ └── Decryption/
│ ├── Received_Ciphertext.png
│ ├── RSA_Key_Unwrapping.png
│ └── DES_Decryption.png
│
├── README.md
└── .gitattributes
Sender
│
│ Generate DES Session Key
▼
Encrypt Message using DES
│
Encrypt DES Key using Receiver's RSA Public Key
│
Send Ciphertext + Encrypted DES Key
│
────────────── Network ──────────────
│
Receiver decrypts DES Key using RSA Private Key
│
Decrypt Ciphertext using DES
▼
Original Message
git clone https://github.com/Ashutosh-789/SecureChat.gitOpen the project in Eclipse or IntelliJ IDEA.
Run:
Server.java
Run:
Client.java
Enter a username.
Run:
Client.java
Enter another username.
Send encrypted messages between clients.
Click on any message bubble to view the complete encryption and decryption process.
- Java Socket Programming
- Client-Server Architecture
- Hybrid Encryption (RSA + DES)
- Secure Key Exchange
- Multithreading
- Java Swing GUI Development
- Secure Network Communication
Ashutosh Baliarsingh
- GitHub: https://github.com/Ashutosh-789
- LinkedIn: https://linkedin.com/in/ashutosh-baliarsingh-2539432a1
⭐ If you found this project useful, consider giving it a star!