All Projects → ejupialked → chat-diffie-hellman

ejupialked / chat-diffie-hellman

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to chat-diffie-hellman

OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (+92.31%)
Mutual labels:  crypto, aes
Qml Snippet
some qml snippet.
Stars: ✭ 9 (-65.38%)
Mutual labels:  crypto, aes
dtls
Datagram Transport Layer Security (DTLS) client.
Stars: ✭ 72 (+176.92%)
Mutual labels:  crypto, aes
webcrypto
A WebCrypto Polyfill for NodeJS
Stars: ✭ 111 (+326.92%)
Mutual labels:  crypto, aes
Encryptlab
A Free and Comprehensive Encrypt and Decrypt Tools Website with example code in Node.js, Website is looking for a new server.
Stars: ✭ 69 (+165.38%)
Mutual labels:  crypto, aes
jscrypto
Crypto library for Node/ES6/Typescript/Browser.
Stars: ✭ 20 (-23.08%)
Mutual labels:  crypto, aes
Forge
A native implementation of TLS in Javascript and tools to write crypto-based and network-heavy webapps
Stars: ✭ 4,204 (+16069.23%)
Mutual labels:  crypto, aes
encryptlab
🔑 Comprehensive (and free) list of encryption and decryption in Node.js.
Stars: ✭ 80 (+207.69%)
Mutual labels:  crypto, aes
Crypto Es
A cryptography algorithms library
Stars: ✭ 65 (+150%)
Mutual labels:  crypto, aes
Cryptojs.swift
Cross-platform cryptographic functions in swift
Stars: ✭ 42 (+61.54%)
Mutual labels:  crypto, aes
Phpseclib
PHP Secure Communications Library
Stars: ✭ 4,627 (+17696.15%)
Mutual labels:  aes, diffie-hellman
Cry
Cross platform PoC ransomware written in Go
Stars: ✭ 179 (+588.46%)
Mutual labels:  crypto, aes
http-connection-lifecycle
Complete and detailed explanation of HTTP connection lifecycle
Stars: ✭ 43 (+65.38%)
Mutual labels:  client-server, tcp-ip
browserify-cipher
No description or website provided.
Stars: ✭ 15 (-42.31%)
Mutual labels:  crypto, aes
L2-Emulator
Implementing a Layer-2 Emulator in C using Graphs and LinkedList
Stars: ✭ 17 (-34.62%)
Mutual labels:  tcp-ip, socket-programming
Hat.sh
encrypt and decrypt files in your browser. Fast, Secure client-side File Encryption and Decryption using the web crypto api
Stars: ✭ 886 (+3307.69%)
Mutual labels:  crypto, aes
Padding Oracle Attacker
🔓 CLI tool and library to execute padding oracle attacks easily, with support for concurrent network requests and an elegant UI.
Stars: ✭ 136 (+423.08%)
Mutual labels:  crypto, aes
Computer-Security-algorithms
👨‍💻 Computer Security algorithms in C#
Stars: ✭ 48 (+84.62%)
Mutual labels:  diffie-hellman, diffie-hellman-algorithm
cryptorious
CLI Password Manager
Stars: ✭ 15 (-42.31%)
Mutual labels:  aes
VSHG
A standalone addon for GnuPG
Stars: ✭ 18 (-30.77%)
Mutual labels:  crypto

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]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].