Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2014, 21:20   #1
CraZZZy-GameRRR
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 98
По умолчанию Алгоритм генерации идентификатора

В базу добавляются записи с id=1 2 3 4 5 и т.д. Нужен алгоритм преобразования id в строку из пяти символов (англ. буквы в обоих регистрах и цифры), причем последовательность строк должна выглядеть случайной, т.е. например:
1 -> aG7ig
2 -> So9Fa
3 -> fPfx2
Кроме того нужно, чтобы впоследствии из строки можно было однозначно восстановить id.
Подскажите какой-нибудь алгоритм, желательно с кодом.
CraZZZy-GameRRR вне форума Ответить с цитированием
Старый 13.04.2014, 21:22   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

а зачем эти пляски?
eval вне форума Ответить с цитированием
Старый 13.04.2014, 21:26   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от CraZZZy-GameRRR Посмотреть сообщение
Подскажите какой-нибудь алгоритм, желательно с кодом.
Вряд ли такой алгоритм существует – в нём просто нет никакой необходимости, и смысла тоже нет.
Andkorol вне форума Ответить с цитированием
Старый 13.04.2014, 21:41   #4
CraZZZy-GameRRR
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 98
По умолчанию

Нужно зашифровать ссылки. Если передавать её номер, можно будет спокойно смотреть соседние (чужие), а так будешь тыкать пальцем в небо.
CraZZZy-GameRRR вне форума Ответить с цитированием
Старый 13.04.2014, 22:08   #5
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от CraZZZy-GameRRR Посмотреть сообщение
Нужно зашифровать ссылки. Если передавать её номер, можно будет спокойно смотреть соседние (чужие), а так будешь тыкать пальцем в небо.
Во-первых, доступ к ссылкам можно ограничить – разрешать пользователю просматривать только определенную ссылку (или несколько ссылок).
Во-вторых – ничего не мешает хранить в таблице и ID, и некоторую уникальную зашифрованную строку для использования её в URL.
В этом случае нет никакой необходимости в том, чтобы «впоследствии из строки можно было однозначно восстановить id».
У ID и у зашифрованной строки совершенно разные задачи.
Andkorol вне форума Ответить с цитированием
Старый 13.04.2014, 22:14   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,184
По умолчанию

используй хеши md5 или crc32
ADSoft вне форума Ответить с цитированием
Старый 13.04.2014, 22:20   #7
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

или гуид сразу
eval вне форума Ответить с цитированием
Старый 13.04.2014, 22:20   #8
CraZZZy-GameRRR
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 98
По умолчанию

Цитата:
Во-первых, доступ к ссылкам можно ограничить
В моём случае затруднительно. Кому ссылку раздадут, тот по ней и перейдёт.

Не знаю, возможно я не прав, но по-моему если база со временем будет разрастаться, по id-шникам идущим по порядку искать будет намного быстрей, нежели по рандомным строкам.
CraZZZy-GameRRR вне форума Ответить с цитированием
Старый 13.04.2014, 22:23   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от CraZZZy-GameRRR Посмотреть сообщение
Не знаю, возможно я не прав, но по-моему если база со временем будет разрастаться, по id-шникам идущим по порядку искать будет намного быстрей, нежели по рандомным строкам.
При правильном использовании индексов – всё будет норм.
Andkorol вне форума Ответить с цитированием
Старый 13.04.2014, 22:24   #10
ATL
Форумчанин
 
Аватар для ATL
 
Регистрация: 26.01.2007
Сообщений: 278
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
используй хеши md5 или crc32
Их результат немного выходят за лимит 5 символов, которые установлены условием)

CraZZZy-GameRRR, для каждой страницы установите свой уникальный ключ и при переходе на ссылку - например:
Код:
site.ru/page.php?hash=fsd53
Берёте $_GET['hash'], ищите его в базе, находите нужную запись и выводите нужный контент
ATL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм Прима для генерации лабиринта anete.anetes Помощь студентам 15 22.09.2013 21:32
Алгоритм генерации перестановок в лексикографическом порядке maksym08 Visual C++ 0 28.10.2012 17:54
Алгоритм генерации матчей по круговой системе Cronos20 PHP 0 19.11.2010 00:50
Алгоритм Безенхема для генерации окружности Влад09 Помощь студентам 3 15.10.2010 20:13
Алгоритм генерации цветов Danion Помощь студентам 0 27.05.2010 20:44