Реализация контроля честности в игре Кено
Формирование MD5
Перед каждой игрой в лотерею Кено сервер генерирует по 20 шаров для серии из 10 игр. К ним, в целях безопасности, прибавляется серверное слово - случайный набор символов. Например: "Numbers: (7, 64, ..., 34, 37); ... (21, 6, 52, ..., 43, 53) server keyword = nRt64pjUNwygsVRE"; где "(7, 64, ..., 34, 37)" - выпавшие числа для каждой игры, "hs0SdfCLkaneqc4y" - серверное слово. Именно из этих данных и формируется "отпечаток" MD5.
Проверка контроля честности
В верхней части игры "Кено" находится панель контроля честности. Перед каждой игрой в онлайн лотерею в поле "MD5" автоматически генерируется MD5 подпись. Скопируйте подпись в буфер (кнопка справа от подписи) и сохраните к себе на компьютер. После розыгрыша серии игр (1, 5 или 10 игр) нажмите на кнопку "Результат".
Откроется окно проверки контроля честности, в котором отображаются: дата и время, MD5 подпись, начальные незашифрованные данные и сдвиг. Ниже представлено визуальное отображение шаров до и после смещения. Для того чтобы проверить неизменность начальных данных необходимо рассчитать контрольную сумму MD5 (кнопка "Проверить MD5") и сравнить ее с подписью на компьютере. Полученная подпись MD5 и подпись, скопированная до начала игрового раунда, должны быть одинаковыми.
Как рассчитать контрольную сумму MD5
Рассчитать контрольную сумму MD5 можно любой другой программой, для этого скопируйте начальные данные (кнопка "Копировать"), вставьте в программу и сгенерируйте подпись MD5. Для того чтобы повлиять на результат игры, Вы можете задать смещение (выпадающий список "Смещение"). Используется единое смещение для всех выпавших шаров.
Например: для первой игры сервером было сгенерировано 20 чисел (72, 35, 61, 44, 65, 70, 68, 74, 17, 16, 64, 14, 76, 19, 59, 63, 46, 12, 47, 9); Вы выбрали смещение 8; итоговым результатом будут начальные шары, увеличенные на 8 (80, 43, 69, 52, 73, 78, 76, 2, 25, 24, 72, 22, 4, 27, 67, 71, 54, 20, 55, 17). Если итоговый номер шара, с учетом сдвига превысит 80, например, станет равным 92, его значение будет уменьшено на 80 и номер шара будет следующим 92 - 80 = 12.