package org.nick.passman;
public class Hex {
private Hex() {
}
public static byte[] fromHex(String digits) {
digits = digits.trim().replaceAll(" ", "");
final int bytes = digits.length() / 2;
if (2 * bytes != digits.length()) {
throw new IllegalArgumentException(
"Hex string must have an even number of digits");
}
byte[] result = new byte[bytes];
for (int i = 0; i < digits.length(); i += 2) {
result[i / 2] = (byte) Integer.parseInt(digits.substring(i, i + 2),
16);
}
return result;
}
public static String toHex(byte[] bytes) {
StringBuilder buff = new StringBuilder();
for (byte b : bytes) {
buff.append(String.format("%02X", b));
}
return buff.toString();
}
}