Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Задание 3: Локальный чатик (только Go) (кория). Вариант 2

Студент: Ву Хоанг Ань

Группа: 932101

Задание

Приложение для локального чата, разработанное на Go, позволяет работать как сервер или клиент в зависимости от параметра при запуске программы. Программа может отправлять публичные сообщения всем клиентам или личные зашифрованные сообщения между двумя пользователями.

Основные функции

  1. Сервер
  • Запускает сервер и принимает подключения на указанном порту.
  • Управляет подключениями нескольких клиентов, сохраняет их никнеймы.
  • Отправляет сообщения всем клиентам или пересылает личные сообщения конкретному клиенту.
  • Уведомляет о подключении и отключении пользователей.
  1. Клиент
  • Подключается к серверу по IP-адресу и порту.
  • Вводит никнейм для участия в чате.
  • Отправляет и получает публичные сообщения.
  • Отправляет и получает личные сообщения в формате @username <сообщение>.
  • Личные сообщения шифруются с использованием алгоритма AES-256 в режиме CFB.

Инструкция по использованию

Запуск сервера

go run main.go server 127.0.0.1 8080

Запуск клиента

go run main.go client 127.0.0.1 8080 User1

Инструкция по использованию чата

Отправка публичного сообщения

Hello

Отправка личного сообщения

@User1 hello

Процесс шифрования

Алгоритм шифрования: AES-256 в режиме CFB.

Инициализационный вектор (IV): Генерируется заново для каждого сообщения и передается вместе с ciphertext.

Ключ шифрования: Генерируется на основе никнеймов двух пользователей с использованием хэш-функции SHA-256.

  • Только сообщения, содержащие @никнейм, шифруются.
  • Публичные сообщения отправляются в виде обычного текста.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages