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();
}