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

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

2
задан Igor Gatis 30 нояб. '11 в 6:40
источник поделиться

2 ответов

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

2
ответ дан guidot 10 июля '12 в 12:29
источник поделиться

Простейшей задачей является базовая контрольная сумма - добавьте байты в строку, mod (2 ^ 24).

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

-1
ответ дан wrschneider 30 нояб. '11 в 22:09
источник поделиться

Другие вопросы по меткам