code: private static String[] decodePasswordCookie(String cookieVal) {
  
  		// check that the cookie value isn't null or zero-length
  		if (cookieVal == null || cookieVal.length() <= 0) {
  			return null;
  		}
  
  		// unrafel the cookie value
  		char[] chars = cookieVal.toCharArray();
  		byte[] bytes = new byte[chars.length / 2];
  		int b;
  		for (int n = 0, m = 0; n < bytes.length; n++) {
  			b = chars[m++] - ENCODE_CHAR_OFFSET1;
  			b |= (chars[m++] - ENCODE_CHAR_OFFSET2) << 4;
  			bytes[n] = (byte) (b ^ (ENCODE_XORMASK + n));
  		}
  		cookieVal = new String(bytes);
  		int pos = cookieVal.indexOf(ENCODE_DELIMETER);
  		String username = (pos < 0) ? "" : cookieVal.substring(0, pos);
  		String password = (pos < 0) ? "" : cookieVal.substring(pos + 1);
  
  		return new String[] { username, password };
  	}
docs: Unrafels a cookie string containing a username and password.
  
  @param value
  The cookie value.
  @return String[] containing the username at index 0 and the password at
  index 1, or <code>{ null, null }</code> if cookieVal equals
  <code>null</code> or the empty string.