PHP: обратный уникальный хеш - PullRequest
2 голосов
/ 09 февраля 2012

Я строю браузер на PHP (браузер в браузере (: просто для удовольствия), и я столкнулся с серьезной проблемой. Мне нужно укоротить URL-адрес во что-то более короткое (закодированное), которое можно использовать в обратном порядке.

например, теперь я обрабатываю страницу следующим образом:

site.com/stackoverflow.com/questions/9217271/php-reverse-able-unique-hash

и это слишком долго, я искал что-то, что будет выглядеть так:

site.com/sftDblt

, что«sftDblt» может быть в обратном направлении «stackoverflow.com/questions/9217271/php-reverse-able-unique-hash"

Есть ли что-нибудь, о чем вы знаете, что может помочь?

Ответы [ 6 ]

3 голосов
/ 09 февраля 2012

Почему бы просто не запустить счетчик для ключа? Отслеживайте URL и счетчик в базе данных.

2 голосов
/ 10 сентября 2012

Взгляните на base64_encode () и base64_decode () .

2 голосов
/ 09 февраля 2012

Хеш не может быть отменен.Вы должны пойти с http://php.net/manual/en/book.mcrypt.php

2 голосов
/ 09 февраля 2012

То, что вы просите, (в принципе) невозможно без таблицы поиска.Очевидно, что вы можете использовать стандартные алгоритмы сжатия, но тогда вам придется кодировать сжатые данные в виде строки ASCII (base-64 и т. Д.), Которая, возможно, будет больше, чем исходная строка.

0 голосов
/ 15 мая 2013

Я создал небольшой класс, чтобы делать подобные вещи с помощью некоторых комментаторов.http://blog.kevburnsjr.com/php-unique-hash

0 голосов
/ 11 февраля 2012

Попробуйте что-то вроде этого: используйте первую букву каждого слова в заголовке и сохраните его в столбце таблицы записей.

Используя ваш пример (site.com/stackoverflow.com/questions/9217271/ php-reverse-able-unique-hash), URL будет "prauh".

Если URL-адрес существует в БД, вы можете добавить 2 случайных буквенно-цифровых символа, а затем снова проверить вашу БД, чтобы увидеть, существует ли она.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...