Ich habe vor kurzem begonnen, MD5-Hashing (in Java) zu betrachten, und während ich Algorithmen und Methoden gefunden habe, um mir dabei zu helfen, frage ich mich, wie es wirklich funktioniert.Kann jemand die Konvertierung von Bytearray zu Hexadezimalstring erklären?
Zum einen fand ich folgende von this URL:
private static String convertToHex(byte[] data) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < data.length; i++) {
int halfbyte = (data[i] >>> 4) & 0x0F;
int two_halfs = 0;
do {
if ((0 <= halfbyte) && (halfbyte <= 9))
buf.append((char) ('0' + halfbyte));
else
buf.append((char) ('a' + (halfbyte - 10)));
halfbyte = data[i] & 0x0F;
} while(two_halfs++ < 1);
}
return buf.toString();
}
Ich habe keine Notwendigkeit nicht gefunden Bitverschiebung in Java zu verwenden, so bin ich ein bisschen auf, dass rostig. Jemand, der gut genug ist, um zu illustrieren (in einfachen Worten), wie genau macht der obige Code die Konvertierung? ">>>"?
Ich fand auch andere Lösungen auf Stackoverflow, wie here und here, die BigInteger verwendet stattdessen:
Warum funktioniert das auch, und die Art und Weise ist effizienter?
Danke für Ihre Zeit.
+1 für die Anstrengung und dafür, mich dazu zu schlagen. Die einzige Sache, die ich hinzufügen würde, ist ein Verweis auf die bitweise Operation Dokumentation: http://www.j2ee.me/docs/books/tutorial/java/nutsandbolts/op3.html – Welbog
danke für diese Erklärung –
Vielen Dank für die ausführliche Erklärung! – aberrant80