code: func (ch Challenge) StringID() string {
  	h := fnv.New128a()
  	h.Write([]byte(ch.Token))
  	h.Write([]byte(ch.Type))
  	return base64.URLEncoding.EncodeToString(h.Sum(nil)[0:4])
  }
docs: // StringID is used to generate a ID for challenges associated with new style authorizations.
  // This is necessary as these challenges no longer have a unique non-sequential identifier
  // in the new storage scheme. This identifier is generated by constructing a fnv hash over the
  // challenge token and type and encoding the first 4 bytes of it using the base64 URL encoding.