Какой лучший способ создать короткий хеш, подобный тому, что делает крошечный URL? - PullRequest
41 голосов
/ 13 июля 2009

В настоящее время я использую хэши MD5, но я хотел бы найти что-то, что создаст более короткий хеш, который использует только [a-z] [A-Z] [0-9]. Это должно быть около 5-10 символов.

Есть ли что-то, что уже делает это?

Обновление:

Мне нравится хэш CRC32. Есть ли чистый способ расчета в .NET?

Обновление2:

Я использую функцию CRC32 по предоставленной Джо ссылке. Как я могу преобразовать UInt в символы, определенные выше?

Ответы [ 13 ]

0 голосов
/ 13 июля 2009

Вы можете закодировать ваш хэш-код md5 с помощью base64 вместо шестнадцатеричного, таким образом, вы получите более короткий URL, используя именно символы [a-z] [A-Z] [0-9].

0 голосов
/ 13 июля 2009

Если вас не волнует криптографическая стойкость, подойдет любая из функций CRC.

Википедия перечисляет множество различных хеш-функций, включая длину вывода. Преобразование их вывода в [a-z] [A-Z] [0-9] тривиально.

0 голосов
/ 13 июля 2009

Вы можете взять первые 5-10 буквенно-цифровых символов хеша MD5.

...