code: public static final byte[] fromHex(final String value)
  	{
  		if (value.length() == 0)
  			return new byte[0];
  		else if (value.indexOf(':') != -1)
  			return fromHex(':', value);
  		else if (value.length() % 2 != 0)
  			throw new IllegalArgumentException("Invalid hex specified: uneven number of digits passed for byte[] conversion");
  
  		final byte[] buffer = new byte[value.length() / 2];
  
  		// i tracks input position, j tracks output position
  		int j = 0;
  		for (int i = 0; i < buffer.length; i++)
  		{
  			buffer[i] = (byte) Integer.parseInt(value.substring(j, j + 2), 16);
  			j += 2;
  		}
  
  		return buffer;
  	}
docs: Decodes a hexidecimal string into a series of bytes
  
  @param value
  
  @return