Ce face password_get_info
password_get_info citește începutul unui hash creat de password_hash și returnează un tablou cu cheile algo (identificatorul, de exemplu "2y"), algoName ("bcrypt", "argon2id") și options (costul la bcrypt; memoria, timpul și firele la Argon2).
Pentru un text care nu este hash cunoscut, algo este null și algoName este "unknown". Este util pentru statistici (câți utilizatori au încă hash-uri vechi) sau depanare.
Parametri
| Parametru | Descriere |
|---|---|
$hash |
Hash-ul analizat. |
Ce returnează
Un tablou cu cheile algo, algoName și options.
Exemple
Exemplul 1: Bcrypt cu cost 10 și text oarecare
<?php
print_r(password_get_info(password_hash("parola", PASSWORD_BCRYPT, ["cost" => 10])));
print_r(password_get_info("nu este un hash"));
Rezultat
Array
(
[algo] => 2y
[algoName] => bcrypt
[options] => Array
(
[cost] => 10
)
)
Array
(
[algo] =>
[algoName] => unknown
[options] => Array
(
)
)
Exemplul 2: Argon2id
<?php
$hash = password_hash("parola", PASSWORD_ARGON2ID);
$info = password_get_info($hash);
echo $info["algoName"] . "\n";
print_r($info["options"]);
Rezultat
argon2id
Array
(
[memory_cost] => 65536
[time_cost] => 4
[threads] => 1
)
Greșeli frecvente
- Folosești
password_get_infoca să decizi dacă refaci hash-ul. Pentru asta existăpassword_needs_rehash, care compară direct cu setările curente.
Comenzi înrudite
password_hash: Creează un hash sigur pentru o parolă, gata de salvat în baza de date. Este modul corect de a stoca parole.password_needs_rehash: Verifică dacă un hash de parolă a fost creat cu alt algoritm sau alt cost decât cele actuale și trebuie refăcut.password_algos: Returnează identificatorii algoritmilor de hash pentru parole disponibili pe server (de exemplu 2y, argon2id).