кратчайшее значение хэша

Я прошел эту страницу …

http://www.php.net/manual/en/function.hash.php

MD5 имеет длину 32 символа, а sha1 – 40. Например

$str = 'apple'; sha1 string d0be2dc421be4fcd0172e5afceea3970e2f3d940 md5 string 1f3870be274f6c49b3e31a0c6728957f 

Даже если для опции raw_output установлено значение TRUE, тогда в md5 digest вместо этого возвращаются в необработанном двоичном формате длиной 16.

Я ищу функцию, которая создаст хеш, который будет равен или меньше 8 символов.

Обновление: мне нужны меньшие строки по трем причинам:

1) Тип таблицы MySQL Archive, похоже, не позволяет индексировать столбец с более чем 8 символами

2) Я планирую использовать утилиту key-value, такую ​​как redis, которая любит более мелкие ключи

3) Безопасность здесь не проблема. Я использую столбцы типа "country + telco + operator"

Related of "кратчайшее значение хэша"

Вы можете использовать метод crc32 для создания хэша, он создает 8-символьный длинный хеш.

 $hash = hash('crc32', $input, FALSE); 

Будьте предельно осторожны с этим методом, так как он полностью подвержен криптографическим атакам. НЕ используйте это для каких-либо защитных чеков.

 function short_hash($value, $length=8) { return substr(md5($value), 0, $length); } 

Оставленный для меня, я бы предложил вам создать свой собственный алгоритм шифрования, который генерирует для вас 8 символов. Вы даже можете решить, например, сделать md5, SHA1 и SHA512 и объединить в соотношении 2: 3: 3, чтобы получить свой собственный код.