Я прошел через эту страницу ...кратчайшее возможное значение хэш
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 дайджест вместо этого вернулся в необработанном двоичном формате с длиной 16.
Ищу функцию, которая будет создавать хэш, который будет быть равно или меньше 8 символов.
Update: мне нужно меньшие строки по 3 причинам:
1) MySQL Archive таблица не кажется, чтобы индекс на столбец, который имеет более чем 8 символов
2) Я планирую использовать утилиту key-value, такую как redis, которая любит более мелкие ключи
3) Безопасность здесь не проблема. Я хэширование столбцов, как «страна + Telco + оператор»
Ну или вам нужно много бит (для многих информации), либо нет. Если это так, то почему бы не усечь строку хеша на требуемую длину? Пока вы всегда делаете то же самое, результат должен быть одинаковым (для равных входов). Но имейте в виду, что меньшее количество бит приводит к большей вероятности столкновения. – Nobody
Для чего вам это нужно? Я почти не предполагаю, что вы хотите генерировать временные пароли, но помните, что хеши состоят только из 16 разных символов. Это меньше для паролей. – KingCrunch
Вы должны добавить еще несколько объяснений, почему вы хотите создать хеш с 8 символами. Это очень вульгарно. Я боюсь, что вы можете совершить большую ошибку, которая последует за вами по вашему следу и проклинает ваш проект из самых внутренних. – Whisperity