php8.5
Home/ Manual/ openssl / functions/ openssl_password_verify

openssl_password_verify

PHP function Edit on GitHub ✎

(PHP 8 >= 8.4.0)

Verify a password against a hash using OpenSSL's Argon2 implementation

Description

openssl_password_verify(string $algo, string $password, string $hash): bool

Verifies that a password matches a hash created by openssl_password_hash().

This function is only available when PHP is compiled with OpenSSL support that includes Argon2 (HAVE_OPENSSL_ARGON2).

Parameters

algo

The password hashing algorithm. Supported values: "argon2id" and "argon2i".

password

The user's password.

hash

A hash created by openssl_password_hash().

Return Values

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

Errors/Exceptions

Throws a ValueError if algo is not one of the supported values ("argon2i" or "argon2id").

Changelog

VersionDescription
8.4.0Function added.

Examples

openssl_password_verify() example

php
<?php
$hash = openssl_password_hash('argon2id', 'my-secret-password');

if (openssl_password_verify('argon2id', 'my-secret-password', $hash)) {
    echo 'Password matches.';
} else {
    echo 'Password does not match.';
}
?>

See Also

Source: reference/openssl/functions/openssl-password-verify.xml · from the official PHP manual (php/doc-en)