Encodes a given byte array into a hex string.
StringBuffer result = new StringBuffer();
char[] digits = { '0", '1", '2", '3", '4", '5", '6", '7", '8", '9",
'a", 'b", 'c", 'd", 'e", 'f" };
for (int idx = 0; idx < input.length; ++idx) {
byte b = input[idx];
result.append(digits[(b & 0xf0) >> 4]);
result.append(digits[b & 0x0f]);
}
return result.toString();