2010-09-19 25 views
0

J'ai lu un paper qui expliquait que l'utilisation de CRC générés à partir de l'algorithme CRC-64-ISO en tant que clés de hachage est susceptible d'entraîner des collisions pour de grands ensembles de données. Ruby CRC project de Postmodern est assez intéressant, mais la classe CRC64 semble utiliser l'algorithme CRC-64-ISO. Je souhaite générer des identifiants probablement uniques à partir d'entrées canoniques qui sont stables et quelque peu favorables à l'homme, par exemple, qui seraient faciles à utiliser dans une feuille de calcul maintenue à la main. Je voudrais juste utiliser SHA1s, mais ils sont assez longs. Je ne connais que les bases des clés de hachage, et j'ai à peine attrapé le problème CRC-64-ISO et je ne me sens pas compétent à ce stade pour assembler une classe avec de meilleures caractéristiques de hachage. Y a-t-il une bibliothèque de rubis existante qui a quelque chose qui peut être utilisé ici?crc64-jones ou crc64-ecma disponible en ruby?

Répondre

0

vous pouvez calculer le md5/sha1 et juste tronquer la valeur de sortie ...

1

CRC sont conçus pour la vérification des erreurs, et non pour les recherches Hashtable. Vous devriez utiliser Spooky (Bob Jenkins), Google CityHash ou TMMHv2 à de telles fins. L'utilisation de hachages cryptographiques comme MD5 fonctionnera, mais elle est plutôt lente.