This project is a secure, real-time desktop messenger built in Java with End-to-End (E2E) encryption. It ensures only the sender and receiver can read messages using a hybrid RSA + AES encryption scheme. The application features secure user authentication (SHA-256 hashed passwords), real-time communication via TCP sockets and Java's virtual threads for high performance, and local SQLite databases for persistent storage of user credentials and chat histories.
To get the Secure End-to-End Java Messenger up and running, follow these steps:
- Java Development Kit (JDK) 21 or newer is required to run the application due to its reliance on virtual threads.
- Maven for building the project.
-
Clone the Repository: First, clone the project repository to your local machine.
git clone https://github.com/Kacpron123/securechat.git cd securechat -
Build the Project with Maven: Navigate to the root directory of the cloned project and use Maven to build it. This will download dependencies and compile the
.jarfiles for both the server and client.mvn clean install
-
Run the Server: Once the build is complete, you'll find the executable
.jarfiles in thetarget/directory (or specific moduletarget/directories if your project is multi-module).java -jar server-app.jar
The server will start and begin listening for incoming client connections.
-
Run the Client(s): Open a new terminal window for each client instance you wish to run.
java -jar client-app.jar
A terminal interface will appear for client. You can run multiple client instances to test the communication but remeber to place them in diffrent folders.