public static byte[] hexToBytes(String hexStr) {
int len = hexStr.length();
hexStr = hexStr.toUpperCase();
byte[] des;
if (len % 2 != 0 || len == 0) {
return null;
} else {
int halfLen = len / 2;
des = new byte[halfLen];
char[] tempChars = hexStr.toCharArray();
for (int i = 0; i < halfLen; ++i) {
char c1 = tempChars[i * 2];
char c2 = tempChars[i * 2 + 1];
int tempI = 0;
if (c1 >= '0' && c1 <= '9') {
tempI += ((c1 - '0') << 4);
} else if (c1 >= 'A' && c1 <= 'F') {
tempI += (c1 - 'A' + 10) << 4;
} else {
return null;
}
if (c2 >= '0' && c2 <= '9') {
tempI += (c2 - '0');
} else if (c2 >= 'A' && c2 <= 'F') {
tempI += (c2 - 'A' + 10);
} else {
return null;
}
des[i] = (byte) tempI;
// System.out.println(des[i]);
}
return des; }
}