code: public static String byteToHexString(final byte[] bytes, final int start, final int end) {
  		if (bytes == null) {
  			throw new IllegalArgumentException("bytes == null");
  		}
  
  		int length = end - start;
  		char[] out = new char[length * 2];
  
  		for (int i = start, j = 0; i < end; i++) {
  			out[j++] = HEX_CHARS[(0xF0 & bytes[i]) >>> 4];
  			out[j++] = HEX_CHARS[0x0F & bytes[i]];
  		}
  
  		return new String(out);
  	}
docs: Given an array of bytes it will convert the bytes to a hex string
  representation of the bytes.
  
  @param bytes
  the bytes to convert in a hex string
  @param start
  start index, inclusively
  @param end
  end index, exclusively
  @return hex string representation of the byte array