PHP - funzione password_get_info

Il password_get_info() può restituire informazioni su un dato hash.

Sintassi

array password_get_info( string $hash )

Quando possiamo passare un hash valido creato da un algoritmo supportato dalla funzione password_hash (), questa funzione può restituire un array di informazioni su quell'hash.

La funzione password_get_info () può restituire un array associativo con tre elementi: algo, che può corrispondere a una costante di algoritmo password, algoName, che ha il nome leggibile dall'algoritmo e opzioni, che possono includere le opzioni fornite quando si chiama password_hash () funzione.

Esempio 1

<?php
   $passw01 = "53nh46u74m3nt3";
   $hashp01 = password_hash($passw01, PASSWORD_ARGON2ID);

   echo "PASSWORD<br>" . strlen($passw01) . " characters<br>" . $passw01 . "<br><br>";
   echo "HASH<br>" . strlen($hashp01) . " characters<br>" . $hashp01;

   $hashi01 = password_get_info($hashp01);

   echo "<br><br>" . $hashi01["algo"];
   echo "<br>" . $hashi01["algoName"];
   echo "<br>" . $hashi01["options"]["memory_cost"];
   echo "<br>" . $hashi01["options"]["time_cost"];
   echo "<br>" . $hashi01["options"]["threads"];
?>

Produzione

PASSWORD<br>14 characters<br>53nh46u74m3nt3<br><br>HASH<br>97 characters<br>$argon2id$v=19$m=65536,t=4,p=1$OHlpdDY5L1dBZU45WlVRLw$9YpYhG9utMwRtk47QZJnvD05rhtbMZORspDkmmw+8mg<br><br>argon2id<br>argon2id<br>65536<br>4<br>1

Esempio 2

<?php
   $passw02 = "53nh46u74m3nt3"; 

   $opts02 = [ "memory_cost" => 512, "time_cost" => 3, "threads" => 3 ]; 
   $hashp02 = password_hash($passw02, PASSWORD_ARGON2ID, $opts02); 

   echo "PASSWORD<br>" . strlen($passw02) . " characters<br>" . $passw02; 
   echo "<br><br>HASH<br>" . strlen($hashp02) . " characters<br>" . $hashp02; 

   $hashi02 = password_get_info($hashp02);

   echo "<br><br>" . $hashi02["algo"];
   echo "<br>" . $hashi02["algoName"];
   echo "<br>" . $hashi02["options"]["memory_cost"];
   echo "<br>" . $hashi02["options"]["time_cost"];
   echo "<br>" . $hashi02["options"]["threads"];
?>

Produzione

PASSWORD<br>14 characters<br>53nh46u74m3nt3<br><br>HASH<br>95 characters<br>$argon2id$v=19$m=512,t=3,p=3$bkZ1ZXZGTC5rblR0VllzTQ$WNcQuJK4QkV0qbPuRSjeBdy8ihGRsOp02CyFClPVCOU<br><br>argon2id<br>argon2id<br>512<br>3<br>3