Как проверить целостность данных между соединением клиент-сервер?

Недавно я разработал многопользовательскую онлайн-игру, и она отлично работает. Есть центральный сервер, обрабатывающий TCP-соединения с клиентами, и они оба получают и отправляют данные.
Есть ли способ проверить, что отправленные данные не были изменены до того, как получатель прочитает их?
Обрабатывает ли это TCP-соединение каким-либо образом? Если нет, то как лучше всего (не запрашивая код) реализовать его?
К настоящему моменту мне пришли в голову следующие идеи:

  • Измените отправляемые данные, добавив какое-нибудь проверочное значение, например длину пакета.
  • Когда пакет получен, попросите сервер отправить его еще раз и проверьте, равны ли они.

Я искал распространенное решение, но ничего не нашел.
Шифрование должно быть моим последним вариантом.

Изменить
Простой способ добиться этого:

  1. MD5
  2. SHA1
  3. SSL

6
задан Community 23 May 2017 в 12:27
поделиться