Php + md5 + лотереи

Статус
В этой теме нельзя размещать новые ответы.

mc-alkin

Постоялец
Регистрация
17 Июл 2009
Сообщения
161
Реакции
100
Ищу решение. Есть онлайн лотерея на php. Надо сделать контроль чесности.
Часто вижу на крупных сайтах аля loto.ru проверку чесности, что-то там с md5. Можно даже сначала узнать хеш, а потом его сравнить после лотереи.
Как это реализовано? Не по програмерски, а по шагам? Что с чем сравнивается? Как пользователь может проверить, что я его не обманул?
 
Очень просто. Игрок будет играть и ему система должна будет что-то сгененрировать, например крутнуть рулетку. Система генерирует, допустим, 50 ходов наперед и получает хеш MD5(x1,x2,x3....x50). Этот хеш высылается юзеру еще до того как он поставил хоть 1 ставку. Далее собственно игра, где выпадают цифры, согласно ранее сегерированной последовательности. Чтобы проверить честность пользователю достаточно записать 50 ходов, а потом самостоятельно получить MD5 от выпавших чисел. Если высланный хеш совпадет с тем что юзер сам получил - типа все чесно.
 
Очень просто. Игрок будет играть и ему система должна будет что-то сгененрировать, например крутнуть рулетку. Система генерирует, допустим, 50 ходов наперед и получает хеш MD5(x1,x2,x3....x50). Этот хеш высылается юзеру еще до того как он поставил хоть 1 ставку. Далее собственно игра, где выпадают цифры, согласно ранее сегерированной последовательности. Чтобы проверить честность пользователю достаточно записать 50 ходов, а потом самостоятельно получить MD5 от выпавших чисел. Если высланный хеш совпадет с тем что юзер сам получил - типа все чесно.
Так не прокатит, потому что у игрока будет подобрать один или два последних хода. Обычно, думаю, хешируют всю последовательность с добавлением каких-то случайных строк. Потом к конце всех ходов - пользователю показывается эта строка, которая была захешироанна.
 
Ну во-первых в клиентах есть встроенный чекер, всегда можно тыцнуть кнопочку и посмотреть. А во-вторых, если ты не доверяешь встроенному чекеру, можешь попробовать сгенерить MD5 самостоятельно и сравнить.

Вообще все эти вещи скорее не для конечных юзеров делаются, а для всяких там рейтингов и аудитов безопасности. А уж какому казину высокий рейтинг поставят - туда конечные юзеры и пойдут, особо не вдаваясь в детали как и почему оно этот рейтинг заслужило. Слишком много тонкостей.
 
и какой процент игроков в лотерею умеют
?
Если захочешь проверить - найдешь возможность. В инете тучи всяких MD5 crack'еров. С прямой своей задачей они справляются, мягко скажем "никак",но генерировать MD5 хеши по представлееным данным умеют.
Так не прокатит, потому что у игрока будет подобрать один или два последних хода. Обычно, думаю, хешируют всю последовательность с добавлением каких-то случайных строк. Потом к конце всех ходов - пользователю показывается эта строка, которая была захешироанна.
Согласен. Но это уже вопросы стойкости хеша. Конечно же мутят к последовательности ходов еще всякие сальты. Но принцип то от этого не меняется : 1)ходы генерируются наперед 2) зашифрованную информацию о них дают пользователь еще до того как он начал ставить. 3)Метод шифрования общедоступный, и как следствие, хеш может быть проверен по истечении этих ходов кем угодно.
 
в том и вся суть технологии MD5 - хешировать можно, а дехешировать нельзя!
определенная последовательность цифр всегда будет иметь один и тот же хеш, например 5 2 9 всегда будет возвращать 58gdfsg67gdfsg8dfgy8df
и сверить можно только конечный хеш зная исходные цифры и никак иначе,

а получить этот хэш может почти любой если понадобится, а вот разгадать никто.
 
в том и вся суть технологии MD5 - хешировать можно, а дехешировать нельзя!
определенная последовательность цифр всегда будет иметь один и тот же хеш, например 5 2 9 всегда будет возвращать 58gdfsg67gdfsg8dfgy8df
и сверить можно только конечный хеш зная исходные цифры и никак иначе,
а получить этот хэш может почти любой если понадобится, а вот разгадать никто.

Да не, ты не понял что мы тут обсуждаем. Смотри, на твоем примере:

у тебя на руках 5 и 2, и ты знаешь md5 всей последовательности цифр - 58gdfsg67gdfsg8dfgy8df. И допустим ждешь еще одну (последнюю) карту. Это может быть туз, валет, пятерка, девятка.. Что угодно. Но всего вариантов не так много (в колоде 52 карты плюс часть из этого уже открыты, так что второй раз не выпадут). И вот ты берешь, и для прикола считаешь md5 от последовательности 5 2 3. Получилось ffaff7ff8ff732845f. Не то.. Потом считаешь для последовательности 5 2 4. Опять не то. Потом доходишь до 5 2 9 - и вуаля! Просчитанная тобою последовательность полностью совпала с той исходной, которую ты знал. Которую казино просчитало, изначально перетасовав карты. Ты УЖЕ 100% знаешь, что следующая карта будет девятка.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху