![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Задача: Пишу систему оформления заказов. Клиент вводит параметры заказа, нажимает кнопку оформить, и получает некий цифровой идентификатор заказа, по которому он может заходить на сайт и проверять статус своего заказа. Сервис идентичен DHL'евскому отслеживанию посылок: http://www.dhl.ru/publish/ru/ru/eshipping/track.high.html
Зачем нужен короткий хэш? Чтобы клиент не парился с длиннющими идентификаторам, а элементарно мог забить себе в телефон маленький номер или даже запомнить (у кого память хорошая). Почему именно хэш а не последовательный номер? Чтобы отвадить баловников от последовательного просмотра статуса заказов. Система не предусматривает регистрации на сайте, потому что статус заказа не такой и большой секрет. Вопрос: какую хэш функцию порекомендуете? -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| NNaarreekk |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 768 Регистрация: 23.6.2007 Где: Армения Репутация: 0 Всего: 3 |
Сделай
И не парься! Если конечно это нужно только против
|
||||
|
|||||
| Borland_Delphi_6 |
|
|||
![]() LoneLINEss ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2509 Регистрация: 5.11.2002 Где: in fortune dreams ... Репутация: 2 Всего: 20 |
По-моему проще всего брать md5 от ID+соль и отрезать от полученного хеша кусок нужной длины. И алгоритм прозрачный, и работает стабильно.
Добавлено через 40 секунд И в хеше всегда только буквы и цифры, никаких спец символов. Добавлено через 3 минуты и 14 секунд Черт, дважды не заметил слово "цифровой" Но тогда имхо, все равно от шутников не очень помогает - вероятность попасть на "рабочий" хеш велика. -------------------- Blind Guardian Fan :: BMSTU Student :: A polar bear is a rectangular bear after a coordinate transform. Мои фотографии |
|||
|
||||
| Royan |
|
||||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
NNaarreekk,
А вот это число 189317653 оно, взято, пардон, от "балды" или имеет какое-то значение? На самом деле, ты меня натолкнул на мысль делать вот так
Чорт с ними, кому делать нечего Это сообщение отредактировал(а) Royan - 31.1.2009, 17:46 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
это не хэш, а случайно сгенерированое число. совершенно непонятно, что в этом случае мешает использовать: rand (0, $placeLen); тот же эффект если говорить о хэше, то пример NNaarreekk, вполне дееспособный, только можно усложнить для трудности распутывания оно взято от балды, но оно постоянно для этого скрипта. принцип хэша ведь в чём? пользователь обладает некой комбинацией, паролем, который можно высчитать исходя из номера его заказа. надо только знать алгоритм т.е. примерно так. вместо логина и пароля, пользователь вводит номер заказа и хэш. считается он так же как и при выдаче, что обуславливает его верность для конкретного заказа, скажем так:
|
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
Ну не тот же... Этот вызов выдаст псевдослучайное число от 0 до $placeLen, а мне нужен хэш с 8-ю разрядами bars80080, NNaarreekk, спасибо за идеи я сделаю некий гибрид из того что предложил вы и выше описал я! Это сообщение отредактировал(а) Royan - 31.1.2009, 17:53 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| webevt |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 235 Регистрация: 5.5.2005 Репутация: нет Всего: 3 |
Royan, посмотрите crc32(). Может понравится
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |