password_hash

FunctionParams and return types changed in PHP 8.0

Creates a password hash.

PHP 5.3-5.4
PHP 5.5
Added
PHP 5.6
PHP 7
PHP 8.0
Improved
PHP 8.1
PHP 8.2
PHP 8.3
PHP 8.4
PHP 8.5

password_hash Function synopsis

password_hash(
    string $password,
    string|int|null $algo,
    array $options = []
  ): string

Parameters

$password

Typestring

The user's password.

$algo

Typestring|int|null

A password algorithm constant denoting the algorithm to use when hashing the password.

$algo accepts one of the following constant values:

$options

OptionalTypearrayDefault value[]

An associative array containing options. See the password algorithm constants for documentation on the supported options for each algorithm.

Return value

Typestring

Returns the hashed password.

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

Changes to the password_hash Function

PHP 8.0

  • Return type added: string
  • Parameter type added for parameter #1 ($password): string
  • Parameter type added for parameter #2 ($algo): string|int|null
  • Parameter type added for parameter #3 ($options): array
  • Parameter default value added for position #3 ($options): []
  password_hash(
-     $password,
+     string $password,
-     $algo,
+     string|int|null $algo,
-     $options
+     array $options = []
-   )
+   ): string

PHP 5.5

  • Function added

password_hash Function Availability

PHP VersionAvailability
PHP 8.5Future Release Yes
PHP 8.4Upcoming Release Yes
PHP 8.3Supported (Latest) Yes
PHP 8.2Supported Yes
PHP 8.1Security-Fixes Only Yes
PHP 8.0Unsupported Yes
PHP 7.4Unsupported Yes
PHP 7.3Unsupported Yes
PHP 7.2Unsupported Yes
PHP 7.1Unsupported Yes
PHP 7.0Unsupported Yes
PHP 5.6Unsupported Yes
PHP 5.5Unsupported Yes
PHP 5.4Unsupported No
PHP 5.3Unsupported No