Ich habe einen Code für MD5-Hash-Generierung in Java. Er erzeugt die Hash in Byte-Array „Bytes“ und wandelt dann auf ganzzahlige und dann auf String wie folgt:Byte zu Integer und dann zu String-Konvertierung in Java
byte[] bytes=md.digest(textToHash.getBytes());
StringBuilder sb=new StringBuilder();
for(int i=0;i<bytes.length;i++)
sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
I verstanden, dass bytes[i] & 0xff
Byte ganze Zahl von 32 Bit-Länge Kopieren wandelt das Byte zu dem niedrigstwertigen Byte des die ganze Zahl:
What does value & 0xff do in Java?
aber ich konnte nicht verstehen, was + 0x100, 16
tut in den Klammern in Zeile 4 des oben genannten Code. Deine Hilfe wird geschätzt.
Danke, aber was ist das, 16? –
'16' ist die * radix * - dh Basis 16, die hexadezimal ist. Der Code gibt grundsätzlich "1" als "01" statt "1" aus. – Bohemian
danke. Ich fand auch einen einfacheren Weg in den Foren: sb.append (String.format ("% 02X", bytes [i])); –