Php + md5 + лотереи

Тема в разделе "Как сделать...", создана пользователем mc-alkin, 16 авг 2010.

Статус темы:
Закрыта.
  1. mc-alkin

    mc-alkin

    Регистр.:
    17 июл 2009
    Сообщения:
    164
    Симпатии:
    100
    Ищу решение. Есть онлайн лотерея на php. Надо сделать контроль чесности.
    Часто вижу на крупных сайтах аля loto.ru проверку чесности, что-то там с md5. Можно даже сначала узнать хеш, а потом его сравнить после лотереи.
    Как это реализовано? Не по програмерски, а по шагам? Что с чем сравнивается? Как пользователь может проверить, что я его не обманул?
     
  2. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    Очень просто. Игрок будет играть и ему система должна будет что-то сгененрировать, например крутнуть рулетку. Система генерирует, допустим, 50 ходов наперед и получает хеш MD5(x1,x2,x3....x50). Этот хеш высылается юзеру еще до того как он поставил хоть 1 ставку. Далее собственно игра, где выпадают цифры, согласно ранее сегерированной последовательности. Чтобы проверить честность пользователю достаточно записать 50 ходов, а потом самостоятельно получить MD5 от выпавших чисел. Если высланный хеш совпадет с тем что юзер сам получил - типа все чесно.
     
    mc-alkin нравится это.
  3. diavolic

    diavolic

    Регистр.:
    17 мар 2010
    Сообщения:
    522
    Симпатии:
    102
    и какой процент игроков в лотерею умеют
    ?
     
  4. McLay

    McLay Постоялец

    Регистр.:
    20 май 2008
    Сообщения:
    71
    Симпатии:
    15
    Так не прокатит, потому что у игрока будет подобрать один или два последних хода. Обычно, думаю, хешируют всю последовательность с добавлением каких-то случайных строк. Потом к конце всех ходов - пользователю показывается эта строка, которая была захешироанна.
     
  5. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Ну во-первых в клиентах есть встроенный чекер, всегда можно тыцнуть кнопочку и посмотреть. А во-вторых, если ты не доверяешь встроенному чекеру, можешь попробовать сгенерить MD5 самостоятельно и сравнить.

    Вообще все эти вещи скорее не для конечных юзеров делаются, а для всяких там рейтингов и аудитов безопасности. А уж какому казину высокий рейтинг поставят - туда конечные юзеры и пойдут, особо не вдаваясь в детали как и почему оно этот рейтинг заслужило. Слишком много тонкостей.
     
  6. horpah

    horpah

    Регистр.:
    21 июн 2010
    Сообщения:
    200
    Симпатии:
    55
    Если захочешь проверить - найдешь возможность. В инете тучи всяких MD5 crack'еров. С прямой своей задачей они справляются, мягко скажем "никак",но генерировать MD5 хеши по представлееным данным умеют.
    Согласен. Но это уже вопросы стойкости хеша. Конечно же мутят к последовательности ходов еще всякие сальты. Но принцип то от этого не меняется : 1)ходы генерируются наперед 2) зашифрованную информацию о них дают пользователь еще до того как он начал ставить. 3)Метод шифрования общедоступный, и как следствие, хеш может быть проверен по истечении этих ходов кем угодно.
     
  7. sympler

    sympler Постоялец

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

    а получить этот хэш может почти любой если понадобится, а вот разгадать никто.
     
  8. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    Да не, ты не понял что мы тут обсуждаем. Смотри, на твоем примере:

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