code: static public byte[] decode(String encoded) {
  		if (encoded == null)
  			return null;
  		int lengthData = encoded.length();
  		if (lengthData % 2 != 0)
  			return null;
  
  		char[] binaryData = encoded.toCharArray();
  		int lengthDecode = lengthData / 2;
  		byte[] decodedData = new byte[lengthDecode];
  		byte temp1, temp2;
  		char tempChar;
  		for (int i = 0; i < lengthDecode; i++) {
  			tempChar = binaryData[i * 2];
  			temp1 = (tempChar < BASELENGTH) ? hexNumberTable[tempChar] : -1;
  			if (temp1 == -1)
  				return null;
  			tempChar = binaryData[i * 2 + 1];
  			temp2 = (tempChar < BASELENGTH) ? hexNumberTable[tempChar] : -1;
  			if (temp2 == -1)
  				return null;
  			decodedData[i] = (byte) ((temp1 << 4) | temp2);
  		}
  		return decodedData;
  	}
docs: Decode hex string to a byte array
  
  @param encoded
  encoded string
  @return return array of byte to encode