I would personally avoid using BigInteger to convert binary data to text. That’s not really what it’s there for, even if it can be used for that. There’s loads of code available to convert a byte[] to its hex representation – e.g. using Apache Commons Codec or a simple single method:
private static final char[] HEX_DIGITS = "0123456789ABCDEF".toCharArray();
public static String toHex(byte[] data) {
char[] chars = new char[data.length * 2];
for (int i = 0; i < data.length; i++) {
chars[i * 2] = HEX_DIGITS[(data[i] >> 4) & 0xf];
chars[i * 2 + 1] = HEX_DIGITS[data[i] & 0xf];
}
return new String(chars);
}