16-разрядная функция хеширования - PullRequest
3 голосов
/ 15 марта 2010

Есть ли хеш-функция, которая возвращает 16-значное шестнадцатеричное значение (поскольку MD5 возвращает 32-значное значение), или есть библиотека (для C ++), в которой я могу использовать MD5 или SHA-1, которая возвращает 16-значное число? значение

Ответы [ 3 ]

7 голосов
/ 15 марта 2010

Поскольку вы готовы жить с гораздо более высокой частотой столкновений, вы можете просто обрезать MD5-хеш данных.

1 голос
/ 30 марта 2010

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

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

1 голос
/ 15 марта 2010

есть ли библиотека (для C ++), в которой я могу использовать MD5 или SHA-1, которая возвращает 16-значное значение

Поиск библиотеки OpenSSL crypto (бесплатно) или RSA BSAFE (платно).

...