Реализация контроля честности в игре "Одноколодный Блэкджек"
Для каждой раздачи сервер генерирует колоду из 52 карт. К ним, в целях безопасности, прибавляется серверное слово - случайный набор символов. Например: "Deck: Kd, 10h, 5c, ..., 6d, 7d serverkeyword = tSX7vG5vrp83lIrI", где "Kd, 10h, 5c, ..., 6d, 7d" - порядок карт в колоде, "tSX7vG5vrp83lIrI" - серверное слово. Для отображения карт используются следующие сокращения: первая цифра или буква означает номинал карты (2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K, A), вторая - означает масть (s - пики, c - трефы, h - червы, d - бубны). Именно из этих данных и формируется "отпечаток" MD5.
Контроль честности и MD5 подпись
В верхней части игры "Одноколодный Блэкджек" находится панель контроля честности. Перед каждой раздачей карт в поле "MD5" автоматически генерируется MD5 подпись. Скопируйте подпись в буфер (кнопка справа от подписи) и сохраните к себе на компьютер. После завершения раздачи нажмите на кнопку "Результат". Откроется окно проверки контроля честности, в котором отображаются: дата и время, MD5 подпись, начальные незашифрованные данные, результат, сдвиг и результат после сдвига. Ниже представлено визуальное отображение карт до и после среза. Для того чтобы проверить неизменность начальных данных необходимо рассчитать контрольную сумму MD5 (кнопка "Проверить MD5") и сравнить ее с подписью на компьютере. Полученная подпись MD5 и подпись, скопированная до начала игрового раунда, должны быть одинаковыми.
Рассчитать контрольную сумму MD5 можно любой другой программой, для этого скопируйте начальные данные (кнопка "Копировать"), вставьте в программу и сгенерируйте подпись MD5. Для того чтобы повлиять на результат игры, Вы можете задать срез карт (выпадающий список "Смещение").