Warum Byte [] Vergleich unterscheidet sich von Hex-Vergleich? Ich Berechnung eines Hash-Wert der gleiche Zeichenfolge mit Rückgabetyp byte []Byte-Vergleich vs Hex-String
byte[] hash1 = md5sum('3078RUR26')
byte[] hash2 = md5sum('3078RUR26')
I bzw. [B @ 7852e92 und [B @ 4e25154f erhalten.
Wenn ich jedoch die gleiche Funktion verwende und bitweise Integer.toHexString auf Hash1 und Hash2 hinterher mache, bekomme ich 5ddff3704bc83a675f3f51671da9c2c für beide Anweisungen. Warum?
Sie haben 2 verschiedene, aber gleiche Bytearrays, dh der Inhalt ist der gleiche, aber sie sind an verschiedenen Stellen gespeichert ('[B @ 7852e92' bedeutet, dass es ein Array vom Typ Byte mit der internen Objekt-ID 7852e92 - der Hexteil ist ist eigentlich der Hexed-Hash-Code, aber die Standardimplementierung von 'hashCode()' verwendet die interne ID). – Thomas
Vielleicht möchten Sie uns zeigen, wie Sie die Arrays vergleichen, aber ich vermute, dass Sie 'hash1 == hash2' verwenden (tun Sie dies nicht, aber benutzen Sie' hash1.equals (hash2) '), außer Sie wollen wissen, ob sie das sind gleiche Instanz). – Thomas