code: public static final String toHex(final char separator, final byte... bin)
  	{
  		if (bin == null || bin.length == 0)
  			return "";
  
  		char[] buffer = new char[(bin.length * 3) - 1];
  		int end = bin.length - 1;
  		int base = 0; // Store the index of buffer we're inserting into
  		for (int i = 0; i < bin.length; i++)
  		{
  			byte b = bin[i];
  
  			buffer[base++] = hex[(b >> 4) & 0x0F];
  			buffer[base++] = hex[b & 0x0F];
  			if (i != end)
  				buffer[base++] = separator;
  		}
  
  		return new String(buffer);
  	}
docs: Encodes a series of bytes into a hexidecimal string with each source byte (represented in the output as a 2 digit
  hexidecimal pair) separated by <code>separator</code><br />
  
  @param separator
  The character to insert between each byte (for example, <code>':'</code>)
  @param bin
  the series of bytes to encode
  
  @return a hexidecimal string with each source byte (represented in the output as a 2 digit hexidecimal pair) separated by
  <code>separator</code>