Есть ли какая -либо классическая функция отпечатков пальцев на 3 байта?

StackOverflow https://stackoverflow.com/questions/8320867

Вопрос

Мне нужна функция контрольной суммы/отпечатка пальца для коротких строк (скажем, от 16 до 256 байтов), которая подходит в слово 24 бита. Есть ли хорошо известный алгоритм для этого?

Это было полезно?

Решение

Я предлагаю использовать 24-битный CRC в качестве простого решения. CRC доступны по всей длине и всегда просты для вычисления. Википедия имеет соответствующую запись. Качество намного лучше, чем сумма, вызванная модулем. Следующим шагом (если это реальная угроза иметь неправильную строку с той же контрольной суммой) был бы криптографический Mac, такой как CMAC. Хотя это слишком долго из книги, его можно уменьшить, принимая первые 24 бита.

Другие советы

Самое простое, что нужно сделать, это базовая контрольная сумма - сложите байты в строке, мод (2^24).

Вы должны следить за проблемами набора персонажей при преобразовании в байты, поэтому все согласны с тем же кодированием персонажей на байтах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top