Pimcore\Model\Object\ClassDefinition\Data\Password::verifyPassword PHP Method

verifyPassword() public method

Re-hash will be performed if PHP's password_hash default params (algorithm, cost) differ from the ones which were used to create the hash (e.g. cost was increased from 10 to 12). In this case, the hash will be re-calculated with the new parameters and saved back to the object.
public verifyPassword ( $password, AbstractObject $object, boolean | true $updateHash = true ) : boolean
$password
$object Pimcore\Model\Object\AbstractObject
$updateHash boolean | true
return boolean
    public function verifyPassword($password, Object\AbstractObject $object, $updateHash = true)
    {
        $getter = 'get' . ucfirst($this->getName());
        $setter = 'set' . ucfirst($this->getName());
        $objectHash = $object->{$getter}();
        if (null === $objectHash || empty($objectHash)) {
            return false;
        }
        $result = false;
        if ($this->getAlgorithm() === static::HASH_FUNCTION_PASSWORD_HASH) {
            $result = true === password_verify($password, $objectHash);
            if ($result && $updateHash) {
                // password needs rehash (e.g PASSWORD_DEFAULT changed to a stronger algorithm)
                if (true === password_needs_rehash($objectHash, PASSWORD_DEFAULT)) {
                    $newHash = $this->calculateHash($password);
                    $object->{$setter}($newHash);
                    $object->save();
                }
            }
        } else {
            $hash = $this->calculateHash($password);
            $result = $hash === $objectHash;
        }
        return $result;
    }