password_verify

Verifies that a password matches a hash

&reftitle.description; `bool` `password_verify` `string` `password` `string` `hash`

Verifies that the given hash matches the given password. `password_verify` is compatible with `crypt`. Therefore, password hashes created by `crypt` can be used with `password_verify`.

Note that `password_hash` returns the algorithm, cost and salt as part of the returned hash. Therefore, all information that's needed to verify the hash is included in it. This allows the verify function to verify the hash without needing separate storage for the salt or algorithm information.

This function is safe against timing attacks.

&reftitle.parameters;

`password`

- &password.parameter.password;

`hash`

- &password.parameter.hash;

&reftitle.returnvalues;

Returns &true; if the password and hash match, or &false; otherwise.

&reftitle.examples;

### `password_verify` example

This is a simplified example; it is recommended to rehash a correct password if necessary; see `password_needs_rehash` for an example.

    <?php
    // See the password_hash() example to see where this came from.
    $hash = '$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a';

    if (password_verify('rasmuslerdorf', $hash)) {
        echo 'Password is valid!';
    } else {
        echo 'Invalid password.';
    }
    ?>

&example.outputs;

    Password is valid!

&reftitle.seealso;

- `password_needs_rehash`
- `password_hash`
- userland implementation
- `sodium_crypto_pwhash_str_verify`