A secure chat application using PyQt5 with an intuitive graphical user interface, leveraging modern cryptographic practices to securely connect a client and a server.
This application provides a simple and secure way to chat between systems. It employs X25519 key exchange for secure key negotiation, and AES-GCM for data encryption, ensuring confidentiality and integrity in message exchange.
- Dual Mode Operation: Choose between Client or Server modes for communication.
- Secure Key Exchange: Utilizes X25519 for efficient and secure key exchange.
- AES-GCM Encryption: Ensures high security for messages with AES-GCM encryption.
- Resilient Connections: Automatically attempts reconnection upon network disruption.
- User-Friendly GUI: Built with PyQt5, offering a clean and responsive interface.
- Message Alignment: Chat messages are visually distinct, aligning client messages left and server messages right.
Follow these instructions to set up and run the project on your local machine.
Ensure you have Python 3.x installed on your system. Required Python packages:
Use pip to install the dependencies:
pip install PyQt5 cryptographyClone the repository:
git clone https://github.com/wangyifan349/QTsocket5_chat.git
cd QTsocket5_chatLaunch the application with Python:
python chat_app.py-
Configuration:
- Mode Selection: Choose Client or Server mode.
- Enter Connection Details: Input the IP address and port number.
-
Initiate Chat:
- Click "Start" to initialize the connection.
- Use the text input field to send messages.
We welcome contributions! Please fork the repository and submit a pull request for any enhancements or bug fixes.
This project is licensed under the terms of the MIT License. You are free to use, modify, and distribute this software under the terms of this license. See the LICENSE file for more details.
- PyQt5 for the GUI framework.
- Cryptography Library for secure encryption functions.
Feel free to reach out for any inquiries or issues through the repository's issue tracker.
Thank you for checking out this project! We hope you find it useful and informative.