code: func (c *Config) sessionFile() (string, error) {
  	u, err := c.vimURLWithoutPassword()
  	if err != nil {
  		return "", err
  	}
  
  	// Key session file off of full URI and insecure setting.
  	// Hash key to get a predictable, canonical format.
  	key := fmt.Sprintf("%s#insecure=%t", u.String(), c.InsecureFlag)
  	name := fmt.Sprintf("%040x", sha1.Sum([]byte(key)))
  	return name, nil
  }
docs: // sessionFile is a helper that generates a unique hash of the client's URL
  // to use as the session file name.
  //
  // This is the same logic used as part of govmomi and is designed to be
  // consistent so that sessions can be shared if possible between both tools.