Самописный Open-Source Децентрализованный Мессенджер + Протокол (да, жри говно, я такое могу сделать, а ты нет))))) MPIP!!!!
python server.py
python server.py 5050
python server.py 5050 passРядом создается server.db если что.
- Чаты: PM + история
- Контакты: заявки / принять / отказ
- Пользователи: регистрация, логин, статус, кто онлайн
- Комнаты: войти, выйти, история
- Файлы: JSON + base64 (да,да)
- /register : регистрация
- /login : вход
- /pm : личное сообщение
- /history : история чата
- /add_contact , /accept , /decline
- /who: онлайн; /search : поиск
- /use , /leave, /history_room
{"type":"FILE","from":"alice","to":"bob","filename":"pic.png","size":12345,"data":"<base64>"}Клиент декодирует data и сохраняет, например, в downloads.
- TCP к серверу; если есть пароль — пришлите первой строкой
- Отправляйте команды выше, парсьте ответы
- Для файлов — JSON как в примере
- Без TLS. Для интернета — пускайте за прокси/туннель.
Децентрализованный протокол обмена мгновенными сообщениями. Любой может установить собственный сервер, либо присоединиться к уже существующему, и начать общаться, причём все сообщения передаются в зашифрованном виде для защиты приватности.
- Децентрализация: Каждый может запустить свой сервер или подключиться к существующему
- Шифрование: Все сообщения можно передавать в зашифрованном виде для защиты приватности
- Совместимость: Простой протокол на основе сокетов, совместимый со старыми системами
- Простота: Минимальные зависимости, легкий в использовании
- Установите зависимости:
pip install -r requirements.txt- Убедитесь, что у вас установлен Python 3.6 или выше.
Запустите сервер на указанном порту:
python main.py server --port 8888С шифрованием (все участники должны использовать тот же пароль):
python main.py server --port 8888 --password secret123Подключитесь к серверу:
python main.py client --host localhost --port 8888 --username ВашеИмяЕсли сервер использует шифрование, укажите пароль:
python main.py client --host localhost --port 8888 --username ВашеИмя --password secret123Вы также можете запускать сервер и клиент напрямую:
Сервер:
python server.py [порт] [пароль]Клиент:
python client.py <host> <port> <username> [пароль]- Введите текст для отправки сообщения
/encrypt- переключить режим шифрования (если пароль установлен)exit- выйти из программы
Наш Базовый Клиент на Python(Жиртон).
python client.py <host> <port> <username> [password]
# пример:
python client.py 127.0.0.1 8888 alice mysecret- Подключение к серверу и интерактивный режим
- Отправка сообщений (обычных и зашифрованных)
- Отправка файлов до ~10 МБ (base64), сохранение входящих в
downloads - Показ онлайн-юзеров, вход/выход участников (если сервер шлёт события)
- Введите текст — отправить сообщение
/encrypt— включить/выключить шифрование (еслиpasswordуказан при запуске)/file путь_к_файлу— отправка файлаexit— выход
Шифрование общее (по паролю) — без сложной криптографии и без обмена ключами.
Проект состоит из следующих модулей:
- encryption.py - Модуль шифрования (AES-256-CBC)
- protocol.py - Протокол обмена сообщениями (JSON)
- server.py - Сервер для приема подключений
- client.py - Базовый клиент (ну клиент который например под основу можно взять, если свой будете делать. А так его и просто юзать можно, он полностью рабочий ^^)
- main.py - Главный модуль с CLI интерфейсом
Протокол использует простой текстовый формат JSON для максимальной совместимости:
- Типы сообщений: MESSAGE, JOIN, LEAVE, PING, PONG, KEY_EXCHANGE, USER_LIST
- Сообщения шифруются с помощью AES-256-CBC
- Каждое сообщение содержит timestamp и информацию о шифровании
- Сообщения шифруются с использованием AES-256-CBC
- Каждое сообщение использует уникальный IV для повышения безопасности
- Пароль хэшируется с помощью SHA-256 для генерации ключа
Этот проект разработан с учетом совместимости со старыми системами:
- Использует стандартные библиотеки Python (socket, threading, select)
- Простой текстовый протокол без сложных зависимостей
- Минимальные требования к системе
- Работает на Python 3.6+ (можно адаптировать для более старых версий)
Пока-что есть только единственный сервер:
- 64.188.105.32 (port 8888)
ДА СУКА ПЖЖ НЕ ПИШИ ЧТО ЭТО ТЫ СОЗДАЛ, А НЕ ТО К ТЕБЕ БАБАЙКА ПРИЙДЕТ!!!!