/**
* @param bool $ignorePasswordCase Compare password case-insensitive
*/
public function __construct(bool
$ignorePasswordCase = false
) { $this->ignorePasswordCase =
$ignorePasswordCase;
} public function hash(#[\SensitiveParameter] string $plainPassword, string $salt = null): string
{ if ($this->
isPasswordTooLong($plainPassword)) { throw new InvalidPasswordException();
} return $this->
mergePasswordAndSalt($plainPassword,
$salt);
} public function verify(string
$hashedPassword, #[\SensitiveParameter] string $plainPassword, string $salt = null): bool
{ if ($this->
isPasswordTooLong($plainPassword)) { return false;
}