|
| 1 | +# Проект |
| 2 | +#### выполнил Алексей Шадрунов @shadrunov, БИБ202 |
| 3 | + |
| 4 | +## Концепция |
| 5 | +Приложение представляет собой простой чат с простым шифрованием. Он состоит из серверной и клиентской части. Сервер хранит пользователей и сообщения и предоставляет информацию клиенту, клиент взаимодействует с пользователем. |
| 6 | + |
| 7 | +* для шифрования используется шифр Виженера и [библиотека](https://github.com/philipperemy/easy-encryption), так как его наиболее просто применить, хотя он и не обладает защищённостью. |
| 8 | +* для хранения и передачи сообщений используется формат json и [другая библиотека](https://github.com/nlohmann/json). |
| 9 | + |
| 10 | +## Запуск |
| 11 | +Код скомпилирован для Linux. Для запуска сервера запускайте server, для клиента -- client. |
| 12 | +> Данные хранятся в оперативной памяти. |
| 13 | +
|
| 14 | +Для локального использования применяется localhost:1234. |
| 15 | +> Сервер не поддерживает параллельное подключение нескольких клиентов. Чат пока **асинхронный**. |
| 16 | +
|
| 17 | +## Использование |
| 18 | +1. Сначала надо зарегистрироваться (кнопка u). Придумайте новый никнейм. Если уже регистрировались, введите существующий. |
| 19 | +1. Далее можно синхронизировать сообшения с сервером. Эта операция запрашивает список чатов, в которых участвует пользователь, и загружает все сообщения на клиент. |
| 20 | +1. В списке чатов можно выбрать нужный чат или создать новый. Для создания чата надо нажать n, ввести никнейм собеседника (он должен быть зарегистрирован в системе), **придумать** ключ шифрования, далее ввести сообщение и отправить его. Ключ надо запомнить и лично (или по защищённому каналу) сообщить собеседнику. |
| 21 | +1. Чтобы открыть существующий чат, вам нужно ввести ключ шифрования от чата. После этого сообшения будут расшифрованы, и, если ключ верный, вы сможете понять текст. |
| 22 | + |
| 23 | +## Плюсы |
| 24 | +* Шифрование производится на клиенте, ключ и открытый текст не передаётся на сервер, никто, кроме вас и вашего собеседника ~~и хакера который взломал слабый шифр~~ не сможет прочитать сообщения. |
| 25 | +* Простота и минимализм: никаких картинок, только текст :) |
| 26 | +* Анонимность и простота регистрации: вы можете придумать любой никнейм (из букв, цифр и нижнего подчёркивания), и это всё, что требуется для регистрации. Даже пароль не нужен!! |
| 27 | + |
| 28 | +## Скриншоты |
| 29 | + |
| 30 | + |
| 31 | + |
0 commit comments