password_algos în PHP

Returnează identificatorii algoritmilor de hash pentru parole disponibili pe server (de exemplu 2y, argon2id).

Sintaxă
password_algos(): array

Ce face password_algos

password_algos spune ce algoritmi poate folosi password_hash pe serverul curent. Bcrypt ("2y") există mereu; "argon2i" și "argon2id" apar doar dacă PHP a fost compilat cu suport Argon2 (libargon2 sau sodium).

Valorile sunt aceleași ca ale constantelor PASSWORD_BCRYPT, PASSWORD_ARGON2I și PASSWORD_ARGON2ID.

Ce returnează

Un tablou cu identificatorii algoritmilor.

Exemple

Exemplul 1: Alegerea algoritmului după ce oferă serverul

<?php
print_r(password_algos());

$algoritm = in_array(PASSWORD_ARGON2ID, password_algos(), true) ? PASSWORD_ARGON2ID : PASSWORD_DEFAULT;
echo "Folosesc: " . $algoritm;

Rezultat posibil (diferă de la server la server)

Array
(
    [0] => 2y
    [1] => argon2i
    [2] => argon2id
)
Folosesc: argon2id

Greșeli frecvente

  • Folosești PASSWORD_ARGON2ID fără să verifici. Pe un server fără suport Argon2, constanta nu există și scriptul se oprește cu eroare.

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_get_info: Arată cu ce algoritm și cu ce opțiuni (cost, memorie) a fost creat un hash de parolă.