Pourquoi la comparaison d'octets [] diffère-t-elle de la comparaison hexadécimale? Je suis le calcul d'une valeur de hachage de la même chaîne avec le type d'octet de retour []comparaison d'octets vs hexstring
byte[] hash1 = md5sum('3078RUR26')
byte[] hash2 = md5sum('3078RUR26')
Je reçois [B @ 7852e92 et [B @ 4e25154f respectivement.
Cependant, si j'utilise la même fonction et que je fais Integer.toHexString au niveau du bit sur hash1 et hash2 par la suite, j'obtiens 5ddff3704bc83a675f3f51671da9c2c pour les deux instructions. Pourquoi?
Vous avez 2 tableaux d'octets différents mais égaux, ie le contenu est le même mais ils sont stockés à différents endroits ('[B @ 7852e92' signifie un tableau de type octet avec l'ID d'objet interne 7852e92 - la partie hex est en fait le code de hachage hexadécimal mais l'implémentation par défaut de 'hashCode()' utilise l'identifiant interne). – Thomas
Vous pouvez nous montrer comment vous comparez les tableaux mais je suppose que vous utilisez 'hash1 == hash2' (ne faites pas cela mais utilisez' hash1.equals (hash2) 'sauf si vous voulez savoir s'ils sont les même exemple). – Thomas