Exemple #1
0
 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;
 }