code: public static String toHex(final byte[] data, final String sep)
  	{
  		final StringBuilder sb = new StringBuilder();
  		for (int i = 0; i < data.length; ++i) {
  			final int no = data[i] & 0xff;
  			if (no < 0x10)
  				sb.append('0');
  			sb.append(Integer.toHexString(no));
  			if (sep != null && i < data.length - 1)
  				sb.append(sep);
  		}
  		return sb.toString();
  	}
docs: Returns the content of <code>data</code> as unsigned bytes in hexadecimal string
  representation.
  <p>
  This method does not add hexadecimal prefixes (like 0x).
  
  @param data data array to format
  @param sep separator to insert between 2 formatted data bytes, <code>null</code>
  or "" for no gap between byte tokens
  @return an unsigned hexadecimal string of data