параметр maked / hashed url - PullRequest
       6

параметр maked / hashed url

0 голосов
/ 03 августа 2009

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

http://www.mysite.com/quiz/view/32k4k2u4vxcv88xcv8cv0x98c9v7c7v8887cv

очевидно, что нельзя просто хэшировать идентификатор, потому что его легко перепроектировать, каков следующий лучший и самый простой способ сделать это, учитывая, что мне нужно выполнить SQL-запрос для сравнения значения хеш-функции?

Ответы [ 2 ]

1 голос
/ 03 августа 2009

Вы можете использовать СОЛЬ, чтобы получить более почитаемый хэш с осведомленностью о разработке.

define("SALT", "some random string .fsddf09asf9sd0-f9sd0-f9sd-0f9s0a-9f-");    
$hash = md5(SALT.$user_id);

Позже, когда пользователь попытается получить URL, сначала снова сгенерируйте хеш с помощью SALT и сравните с хешем из предоставленного URL.

Имейте в виду, что md5 уже сломан. Используйте некоторые из хэш-алгоритмов SHA.

Привет

1 голос
/ 03 августа 2009

Вы можете просто назначить каждому экземпляру GUID , который должен быть невозможен для обратного инжиниринга (поскольку он не зависит от записи), и уникальный. То, что у вас там есть, тоже немного похоже на GUID (то есть выглядит случайным образом и не читается).

...