1
我得到了一个用于Java中MD5哈希生成的代码。它产生在字节数组“字节”的散列,然后转换为整数,然后字符串如下:字节转换为整数,然后转换为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));
予理解的是,bytes[i] & 0xff
字节转换成32位的长度复制该字节到的至少显著字节的整数整数:
What does value & 0xff do in Java?
但是我不明白+ 0x100, 16
在上面的代码中的第4行确实在括号中。感谢您的帮助。
谢谢,但最新是什么,16? –
'16'是*基数* - 即16进制,即十六进制。该代码基本上输出'1'作为'“01”'而不是''1'' – Bohemian
谢谢。我还在论坛上找到了一个更简单的方法:sb.append(String.format(“%02X”,bytes [i])); –