This is a peer-to-peer (P2P) messenger application built using .NET WPF (Windows Presentation Foundation). It allows two end users to establish a secure connection and communicate with each other via text chat. The communication is encrypted using multiple layers of encryption and decrypted using a shared key.
- P2P Communication: The application facilitates direct communication between two users without the need for a centralized server.
- Secure Connection: All communication between users is encrypted to ensure privacy and security.
- Shared Key Encryption: Messages are encrypted using a shared key, ensuring that only the intended recipient can decrypt and read them.
- Multi-layer Encryption: Messages undergo multiple layers of encryption to further enhance security.
- User-friendly Interface: The application is designed with a user-friendly interface using WPF for a seamless user experience.
- .NET Framework
- Visual Studio (or any other compatible IDE for .NET development)
-
Clone the repository to your local machine:
git clone https://github.com/3th1K/P2PMessenger.git
-
Open the solution file
P2PMessenger.slnin Visual Studio. -
Build the solution to resolve any dependencies and compile the application.
-
Build the project to generate the executable file. You can do this by opening the solution file
P2PMessenger.slnin Visual Studio and building the solution. -
Once the project is built, navigate to the directory containing the executable file (
P2PMessenger.exe). -
Run the executable file from the command line with the username argument. For example:
P2PMessenger.exe Alice
Replace
Alicewith the username (Alice or Bob) you want to use for the current instance of the application. -
Repeat the above steps on another machine or another instance of the application, specifying the other username (e.g.,
Bob), to establish a connection between the two users. -
Enter the shared key to establish a secure connection.
-
Start communicating by typing messages in the chat interface.
-
Messages will be encrypted before transmission and decrypted upon receipt using the shared key.
Contributions are welcome! If you'd like to contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/improvement) - Make your changes and commit them (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/improvement) - Create a new Pull Request.
- Special thanks to the developers of libraries and frameworks used in this project.
- Inspired by the need for secure and private communication channels.