Une méthode acceptée pour combiner deux hachages à partir d'objets différents consiste à utiliser XOR. Cela a du sens, mais comme mentionné dans le deuxième commentaire de Thomas Pornin dans le post ci-dessous, XOR est commutatif, ce qui signifie que si vous hachez chaque élément d'un ensemble et les combinez avec XOR, tout ordre que vous ferez le même hachage:Combinaison de hachages pour un ensemble ordonné
Why is XOR the default way to combine hashes?
Qu'est-ce qu'un bon moyen de combiner hash que vous voulez dépendre l'ordre? Si elle est spécifique à la taille, quelles sont les techniques connues en 32 bits et en 64 bits?
Note de côté, dans un cas particulier, j'ai une variable d'itération 'i' allant de 0 au nombre d'éléments. Existe-t-il un bon moyen d'utiliser 'i' pour faire un hash dépendant d'une commande? – Trevor
Si vous voulez imposer un ordre, vous pouvez faire pivoter (* pas * décaler) les hachages partiels avant de les placer dans l'agrégat. Ce cours peut provoquer des collisions (comme H (ABCD) == H (DABC)), mais c'est une partie du jeu ... – wildplasser
En ce moment, je fais quelque chose de stupide où je multiplie 'i' par un énorme premier , et xou cela avec le hachage pour chaque élément. Cela impose de l'ordre, mais je ne suis absolument pas un expert et je ne sais pas si cela causerait des collisions majeures. – Trevor