Создать хэш в стиле Tinyurl - PullRequest
4 голосов
/ 01 апреля 2009

кто-нибудь знает алгоритм, который генерирует хеши, которые выглядят как хеши tinyurl из строки (URL)

Я думаю, что требования будут

чувствителен к регистру короткая только цифры и алфавиты что-нибудь еще?

Ответы [ 2 ]

15 голосов
/ 01 апреля 2009

Я не думаю, что tinyurl хеширует строки; у них есть идентификатор базы данных (1, 2, 3), который включен в базу 36 (0-9A-Z): http://en.wikipedia.org/wiki/Base_36

1 голос
/ 01 апреля 2009

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

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

Скорее, я думаю, что вы видите счетчик, который увеличивается и использует систему счисления с большой базой (например, 62 для цифр 0-9, символов az и AZ) для представления значения уникального счетчика. .

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