Skip to content

Instantly share code, notes, and snippets.

@zhangtaii
Last active March 12, 2019 03:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zhangtaii/7784f4c38e8109ec81787ed32cc44e5d to your computer and use it in GitHub Desktop.
Save zhangtaii/7784f4c38e8109ec81787ed32cc44e5d to your computer and use it in GitHub Desktop.
byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
}
return data;
}
char[] hexArray = "0123456789ABCDEF".toCharArray();
String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for ( int j = 0; j < bytes.length; j++ ) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
// Using this will remove the leading zeros,
String result = new BigInteger(1, inputBytes).toString(16);
// Edit: Not safe for leading zeros, as noted by the poster.
new BigInteger("00A0BF", 16).toByteArray();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment