NETwasel is a secure client-server chat application built in Python that supports end-to-end encrypted messaging and file transfer.
The goal of this project was to better understand secure communication systems, encryption, and networking concepts by building a practical chat application where the server only relays data and cannot read user messages.
- End-to-End Encrypted Messaging (E2EE)
- Encrypted File Transfer (Private & Group)
- User Authentication with Secure Password Hashing
- RSA Public Key Exchange
- TLS-secured Client-Server Communication
- Private & Group Messaging
- User Identity Mapping (
/whois)
- Messages and files are encrypted on the client side before being sent
- The server works only as a relay between users
- RSA is used for key exchange
- AES is used for encrypted file transfer
- TLS secures communication between client and server
- Python
- Socket Programming
- SSL/TLS
- RSA Encryption
- AES Encryption
- PBKDF2 Password Hashing
- Threading
python3 server.py --host 0.0.0.0 --port 5050python3 client.py --host localhost --port 5050 --name <username>/msg user Hello
/encmsg user Secret Message
/sendfile user file.txt
/encfile user file.txt client.py --host localhost --port 5050 --name <username>- Messages and files are encrypted client-side
- Passwords stored using salted hashing
- TLS used for transport security
- Server cannot read encrypted data
- No offline messaging
- No persistent message storage
- CLI-only interface
- No group session key management
- GUI support
- Offline message delivery
- Persistent chat history
- Improved group encryption management
- Understanding of networking and client-server systems
- Practical use of encryption concepts
- Secure communication design
- Concurrent programming with multiple clients