2010-12-03 46 views

Répondre

3

Utilisez concaténation - alors vous allez basez votre hachage sur toutes des données sources disponibles. Si vous utilisez XOR, il y a un risque qu'une partie de vos données sources "annule" une partie (ou la totalité) des bits des données restantes avant même qu'elles soient passées à la fonction de hachage.

Et concaténant plutôt que XORing n'affectera pas l'espace requis pour le stockage de votre hachage - le hachage SHA1 généré sera toujours de 20 octets quelle que soit la taille de vos données source.

+0

Je vous remercie, je suppose que c'est "plus" risqué, mais juste un peu plus de risque, car même si une pièce annule des données d'autres pièces, le sha1 générera apparemment un hachage fort, ai-je tort ? – C2T38SN

+1

@ user529361: Le problème n'est pas vraiment la force du hachage, mais plutôt "l'unicité" de vos données sources. Par exemple, 'SHA1 (1^2^3)' == 'SHA1 (1^3^2)' == 'SHA1 (2^1^3)' == 'SHA1 (2^3^1)' = = 'SHA1 (3^1^2)' == 'SHA1 (3^2^1)', alors que 'SHA1 (123) '! =' SHA1 (132) '! =' SHA1 (213) '! =' SHA1 (231) '! =' SHA1 (312) '! =' SHA1 (321) 'etc etc. – LukeH