public static String toHexValue(byte[] messageDigest) {
if (messageDigest == null)
return "";
StringBuilder hexValue = new StringBuilder();
for (byte aMessageDigest : messageDigest) {
// 同256 进行与操作 byte 0~128~-127(256) 范围 刚好是16进制的 0xFF
// 如果不进行与操作 byte的-1 转成 int类型时会变成 0xFFFFFFFF
int val = 0xFF & aMessageDigest;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
本文详细解析了一种将字节数组转换为十六进制字符串的方法。通过使用与操作和StringBuilder,该方法能够高效地处理字节数据,确保转换后的十六进制字符串正确无误。文章深入探讨了与操作符在字节转换中的作用,以及如何通过条件判断添加前导零以保持十六进制数的格式一致性。
3006

被折叠的 条评论
为什么被折叠?



