
Приложение для чата между сервером и клиентом с сквозным шифрованием, адаптивными режимами шифрования, поддержкой мультимедиа и групповым чатом, построенное на сокетном программировании на Python.
Добро пожаловать в CryptoChat — место, где беседы остаются по‑настоящему приватными. Созданный на мощной экосистеме Python, наш гарантирует, что каждое отправленное вами слово защищено многослойным шифрованием. Обсуждаете ли вы конфиденциальные деловые детали или делитесь личным, CryptoChat обеспечивает убежище, необходимое в цифровую эпоху. Окунитесь и ощутите новый уровень безопасного обмена сообщениями!
Клонируйте репозиторий:
git clone https://github.com/HalilDeniz/CryptoChat.git
Перейдите в директорию проекта:
cd CryptoChat
Установите необходимые зависимости:
pip install -r requirements.txt
$ python3 server.py --help
usage: server.py [-h] [--host HOST] [--port PORT] [--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--logfile LOGFILE]
Start the chat server.
options:
-h, --help show this help message and exit
--host HOST The IP address to bind the server to. (Default: 0.0.0.0)
--port PORT The port number to bind the server to. (Default: 12345)
--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the logging level (Default: INFO)
--logfile LOGFILE Set the log file name. (Default: server.log
--------------------------------------------------------------------------
$ python3 client.py --help
usage: client.py [-h] [--host HOST] [--port PORT]
Connect to the chat server.
options:
-h, --help show this help message and exit
--host HOST The server's IP address.
--port PORT The port number of the server.
$ python3 serverE.py --help
usage: serverE.py [-h] [--host HOST] [--port PORT] [--key KEY] [--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [--logfile LOGFILE]
Start the chat server.
options:
-h, --help show this help message and exit
--host HOST The IP address to bind the server to. (Default=0.0.0.0)
--port PORT The port number to bind the server to. (Default=12345)
--key KEY The secret key for encryption. (Default=mysecretpassword)
--loglevel {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set the logging level (Default: INFO)
--logfile LOGFILE Set the log file name. (Default: server.log)
--------------------------------------------------------------------------
$ python3 clientE.py --help
usage: clientE.py [-h] [--host HOST] [--port PORT] [--key KEY]
Connect to the chat server.
options:
-h, --help show this help message and exit
--host HOST The IP address to bind the server to. (Default=127.0.0.1)
--port PORT The port number to bind the server to. (Default=12345)
--key KEY The secret key for encryption. (Default=mysecretpassword)
--help : показать это справочное сообщение и выйти--host : IP-адрес для привязки сервера.--port : Номер порта для привязки сервера.--key : Секретный ключ для шифрования--loglevel: Установить уровень логирования--logfile : Установить имя файла логаpython3 clientE.py
Enter your username: deniz
Help Menu:
/help -> Help menu
deniz: Enter your message: /help
deniz: Enter your message:
Help Menu:
/help -> Help Menu
/exit -> Exit the program.
/clear -> Clear the chat screen.
/userlist -> View the list of connected users.
/dm [user] [message] -> Send a direct message to a user.
/changeuser [new_username] -> Change your username.
deniz: Enter your message:
Я написал прослушивающий инструмент, чтобы проверить, правильно ли работает зашифрованный обмен сообщениями
└─# python3 SCsniff.py
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=12345, Destination Port=50968
Raw Data: b'gAAAAABlOlxawZboULf0WJkQQkzVwJKLXbGh3qyxWYbaCqNhi5xLwhR9YdckSiPiPQCkWHHGSzKAKG5pW3HyatQnpekoR0Zl-_DH-WH_azjGm86QGW1PRnE='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=12345, Destination Port=50968
Raw Data: b'gAAAAABlOlxawZboULf0WJkQQkzVwJKLXbGh3qyxWYbaCqNhi5xLwhR9YdckSiPiPQCkWHHGSzKAKG5pW3HyatQnpekoR0Zl-_DH-WH_azjGm86QGW1PRnE='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=50968, Destination Port=12345
--------------------------------------------------
TCP Packet: Source Port=42228, Destination Port=12345
Raw Data: b'gAAAAABlOlyHDfYapDc2kawoEjNozSJybZBk0SxZwMiE2_x9OffGGc-NlaB3FHJue6jY3rQbBKseCkDATpnBgJRxLJQA6heDlw=='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=42228, Destination Port=12345
Raw Data: b'gAAAAABlOlyHDfYapDc2kawoEjNozSJybZBk0SxZwMiE2_x9OffGGc-NlaB3FHJue6jY3rQbBKseCkDATpnBgJRxLJQA6heDlw=='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=12345, Destination Port=42228
Raw Data: b'gAAAAABlOlyHyCO4dV50WtplQ8eZxbH8d9xuL04iGsrbjhU-oFlguaaig0vjRd7GVvLiBm5Js6kFYHpc6esuTkDrmabq-k1DdSrlEHOgvdaMotxMMg5KEL8='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=12345, Destination Port=42228
Raw Data: b'gAAAAABlOlyHyCO4dV50WtplQ8eZxbH8d9xuL04iGsrbjhU-oFlguaaig0vjRd7GVvLiBm5Js6kFYHpc6esuTkDrmabq-k1DdSrlEHOgvdaMotxMMg5KEL8='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=42228, Destination Port=12345
Raw Data: b'gAAAAABlOlyPKyzTR_-1LFSNLtBCR5sghmont3299N9QWrQhHXzwo1Y-toax3Xh4f3PQ5cG-8QuOpM9ApGFoxkVGbpH4Bfhy9iYduQgwYy59kChiGwIQ1rI='
--------------------------------------------------
IP Packet: Source IP=127.0.0.1, Destination IP=127.0.0.1
TCP Packet: Source Port=42228, Destination Port=12345
Raw Data: b'gAAAAABlOlyPKyzTR_-1LFSNLtBCR5sghmont3299N9QWrQhHXzwo1Y-toax3Xh4f3PQ5cG-8QuOpM9ApGFoxkVGbpH4Bfhy9iYduQgwYy59kChiGwIQ1rI='
--------------------------------------------------
Вклад приветствуется! Если вы нашли какие-либо проблемы или у вас есть предложения по улучшению, не стесняйтесь открывать issue или отправлять pull request.
Если у вас есть вопросы, комментарии или предложения по CryptoChat, пожалуйста, свяжитесь со мной:
Этот проект лицензирован под лицензией MIT. Подробнее см. в файле LICENSE.
Спасибо, что рассматриваете возможность поддержать меня! Ваша поддержка позволяет мне уделять больше времени и сил созданию полезных инструментов, таких как CryptoChat, и разработке новых проектов. Внося вклад, вы не только помогаете мне улучшать существующие инструменты, но и вдохновляете на новые идеи и инновации. Ваша поддержка играет важную роль в развитии этого проекта и будущих начинаний. Давайте вместе продолжать создавать и учиться. Спасибо!"