Skip to content

A secure chat between an Android client and Java server using AES for encryption and Diffie-Hellman for key exchange.

License

Notifications You must be signed in to change notification settings

ejupialked/cryptchat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT Licence Open Source Love

CryptChat

CryptChat is a secure chat between an Android client and Java server based on TCP/IP socket connection.

This chat uses the Diffie-Hellman algorithm for the exchange of public keys and the AES algorithm for the encryption/decryption of messages. The public key carries different parameters which can be seen by anyone, it is needed to generate a common secret key. Both client and server generate a key pair, the public key mentioned before and private key used to decrypt every message. The common secret key (generated by the Diffie-Hellman algorithm) encrypts the messages. The message sent over the network socket are encoded in BASE64.

Client Server

Motivation

This personal project was created in my final year of high school in 2017. I presented this project during my final oral exam which was about Computer Security. After high school my coding skills have improved, that's why I decided to refactor the code making the chat more secure.

How to run the project

Simply use Intellij with Maven to run the server and Android studio with gradle for the client. The IDE will automatically detect the project.

Screenshots

Client

Client

Server

Server

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Contact

Alked Ejupi - [email protected]