2010-09-19 3 views
0

Я прочитал paper, в котором объясняется, что использование CRC, сгенерированных из алгоритма CRC-64-ISO в качестве хеш-ключей, может привести к столкновениям для больших наборов данных. Postmodern's Ruby CRC project довольно интересен, но класс CRC64, по-видимому, использует алгоритм CRC-64-ISO.crc64-jones или crc64-ecma доступны в рубине?

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

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

ответ

0

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

1

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