PHP - password_get_info() Function
The PHP Hashing password_get_info() function is used to retrieve information about a given hash. The returned information will be in an array format.
The returned array is associated with three elements "algo", "algoName", and "options", which are described below −
- algo − This is an integer representing the algorithm used to create the hash, which matches one of the password algorithm constants.
- algoName − This is a human-readable string that describes the algorithm used to hash the password.
- options − This includes any options that were provided when calling the password_hash() function, such as cost parameters or other algorithm-specific settings.
Syntax
Following is the syntax of the PHP Hashing password_get_info() function −
password_get_info(string $hash): array
Parameters
This function accepts a single parameter named 'hash', which is described below −
- hash − A hash created by password_hash() function.
Return value
This function returns an information about the given hash.
Example 1
The following program demonstrates the usage of the PHP Hashing password_get_info() function −
<?php #password $passw01 = "53nh46u74m3nt3"; $hashp01 = password_hash($passw01, PASSWORD_ARGON2ID); echo "The given password: $passw01"; echo "\nPassword length: ".strlen($passw01); echo "\nThe hash is: ".$hashp01; echo "\nHash length: ".strlen($hashp01); $hashi01 = password_get_info($hashp01); echo "\nThe information about hash: "; echo "\n".$hashi01["algo"]; echo "\n".$hashi01["algoName"]; echo "\n".$hashi01["options"]["memory_cost"]; ?>
Output
The above program produces the following output −
The given password: 53nh46u74m3nt3 Password length: 14 The hash is: $argon2id$v=19$m=65536,t=4,p=1$d1lQNFRXaHZ4c2svckVwSw$ycYE/MWu3Rc1oRa8VWV3ZqNS8i0QqWnnuWdQzjwsAZQ Hash length: 97 The information about hash: argon2id argon2id 65536
Example 2
Following is another example of the PHP Hashing password_get_info() function. We use this function to retrieve an information about a given hash −
<?php $passw02 = "53nh46u74m3nt3"; $opts02 = [ "memory_cost" => 512, "time_cost" => 3, "threads" => 3 ]; $hashp02 = password_hash($passw02, PASSWORD_ARGON2ID, $opts02); echo "The given password: ".$passw02; echo "\nThe password length: ".strlen($passw02); echo "\nHash: ".$hashp02; echo "\nHash length: ".strlen($hashp02); $hashi02 = password_get_info($hashp02); echo "\nAn information about hash: "; echo "\nAlgo: ".$hashi02["algo"]; echo "\nAlgo Name: ".$hashi02["algoName"]; echo "\nMemory cost: ".$hashi02["options"]["memory_cost"]; echo "\nTime cost: ".$hashi02["options"]["time_cost"]; echo "\nThreads: ".$hashi02["options"]["threads"]; ?>
Output
After executing the above program, the following output will be displayed −
The given password: 53nh46u74m3nt3 The password length: 14 Hash: $argon2id$v=19$m=512,t=3,p=3$SC4yMWZ0TUIxaTJ3TnVBYQ$JCztOuIo34OX0OEmtHzSnKLN/Zugk5buGm0k/tTFpbs Hash length: 95 An information about hash: Algo: argon2id Algo Name: argon2id Memory cost: 512 Time cost: 3 Threads: 3