crc64-jones или crc64-ecma доступны в ruby? - PullRequest
0 голосов
/ 19 сентября 2010

Я прочитал документ , в котором объясняется, что использование CRC, сгенерированных из алгоритма CRC-64-ISO, в качестве ключей хеш-функции может привести к коллизиям для больших наборов данных.Ruby CRC-проект Postmodern довольно интересен, но класс CRC64, похоже, использует алгоритм CRC-64-ISO.

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

Я только знаком с основами хеш-ключей, и я едва уловил проблему CRC-64-ISO и не чувствую себя компетентным на данный моментсобрать класс с лучшими характеристиками хеширования.Существует ли существующая библиотека ruby, в которой есть что-то, что можно использовать здесь?

Ответы [ 2 ]

1 голос
/ 25 марта 2013

CRC предназначены для проверки ошибок, а не для хеш-таблиц.Вы должны использовать Spooky (Боб Дженкинс), Google's CityHash или TMMHv2 для таких целей.Использование криптографических хэшей, таких как MD5, будет работать, но довольно медленно.

0 голосов
/ 25 мая 2011

Вы можете вычислить md5 / sha1 и просто обрезать выходное значение ...

...