public function testPassword(HereAuth $main, $password) { $hash = HereAuth::hash($password, $this->name); if (strlen($this->passwordHash) === strlen($hash)) { return $hash === $this->passwordHash; } $salt = strtolower($this->name); if (isset($this->multiHash["nonhash:salt"])) { $salt = $this->multiHash["nonhash:salt"]; } foreach ($this->multiHash as $type => $value) { if ($type === "nonhash:salt") { continue; } $array = explode(";", $type); $name = $array[0]; $suffix = isset($array[1]) ? $array[1] : ""; $iHash = $main->getImportedHash($name); if ($iHash === null) { continue; } if ($iHash->hash($password, $salt, $suffix) === $value) { $this->multiHash = []; $this->passwordHash = $hash; return true; } } return false; }