docs: def make_password(password, salt=None, hasher='default'):
      """
      Turn a plain-text password into a hash for database storage
      Same as encode() but generate a new random salt. If password is None then
      return a concatenation of UNUSABLE_PASSWORD_PREFIX and a random string,
      which disallows logins. Additional random string reduces chances of gaining
      access to staff or superuser accounts. See ticket #20079 for more info.
      """
      if password is None:
          return UNUSABLE_PASSWORD_PREFIX + get_random_string(UNUSABLE_PASSWORD_SUFFIX_LENGTH)
      hasher = bCryptPasswordHasher
  
      if not salt:
          salt = hasher.salt()
  
      return hasher.encode(password, salt)