Funzione PHP password_hash

Funzione PHP password_hash
La password dell'utente di qualsiasi applicazione è molto importante per proteggere l'applicazione da diversi attacchi. Esistono molti modi in PHP per generare una password sicura per rendere l'applicazione più sicura. La funzione password_hash () è un modo per creare un nuovo hash password utilizzando l'algoritmo di hashing a senso unico. La sintassi di questa funzione è riportata di seguito.

Sintassi:

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

Il primo argomento è obbligatorio e viene utilizzato per prendere il valore della stringa che verrà hash.

Il secondo argomento è obbligatorio e viene utilizzato per prendere l'intero o la stringa che si riferisce a un algoritmo, che verrà utilizzato per creare l'hash della password. Questa funzione attualmente supporta i seguenti algoritmi.

Password_default:

Utilizza l'algoritmo BCrypt per generare l'hash della password.

Password_bcrypt:

Utilizza l'algoritmo Crypt_Blowfish per generare l'hash della password.

Password_argon2i:

Utilizza l'algoritmo di hashing Argon2i per generare l'hash della password e può essere utilizzato se PHP è stato compilato con il supporto Argon2.

Password_argon2id:

Utilizza l'algoritmo di hashing Argon2ID per generare l'hash della password e può essere utilizzato se PHP è stato compilato con il supporto Argon2.

Il terzo argomento è facoltativo e viene utilizzato per definire un array che contiene le opzioni supportate dell'algoritmo usato.

Le seguenti opzioni sono supportate dall'algoritmo password_bcrypt.

sale:

Questa opzione è ora deprecata. Il valore salato generato per impostazione predefinita è meglio utilizzare.

costo:

È usato per definire il costo dell'algoritmo che dovrebbe essere utilizzato. Il valore predefinito è 10.

Le seguenti opzioni sono supportate dagli algoritmi password_argon2i e password_argon2id.

memory_cost:

Viene utilizzato per definire la memoria massima in KB che può essere utilizzata per generare l'hash della password utilizzando l'hash Argon2.

time_cost:

Viene utilizzato per definire il tempo massimo che può essere utilizzato per generare l'hash della password utilizzando l'hash Argon2.

Discussioni:

Viene utilizzato per definire il numero di thread per generare l'hash della password utilizzando l'hash Argon2.

La funzione restituisce la password hash su successo o falso su errore.

Esempi di funzioni password_hash ()

Gli usi della funzione password_hash () per creare password hash sono stati nella prossima parte del tutorial.

Esempio-1: crea una password hashing utilizzando l'algoritmo hash predefinito

Crea un file PHP con il seguente script che genererà un valore hash di una password utilizzando la funzione password_hash () e l'algoritmo di hashing predefinito è stato utilizzato qui. Le stringhe di password originale e hash verranno stampate come output dello script.

// Imposta il valore della password
$ password = 'SecretPassword';
// genera la password hashing in base all'algoritmo predefinito
$ hashed_password = password_hash ($ password, password_default);
// Stampa la password originale e hash
Echo "La password originale: $ password";
eco "
La password hashing utilizzando l'algoritmo predefinito: $ hashed_password";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Esempio-2: creare password hashing utilizzando il valore di costo e l'algoritmo di password_bcrypt

Crea un file PHP con il seguente script che genererà un valore hash di una password utilizzando password_hash (). L'algoritmo password_bcrypt e il valore di costo sono stati utilizzati nella funzione password_hash () per generare la password hash. Sia la stringa di password originale che hash verrà stampata come output dello script.

// Imposta il valore della password
$ password = 'SecretPassword';
// Imposta il valore di costo per l'algoritmo di password_bcrypt
$ option = ["cost" => 5];
// genera la password hashing in base all'algoritmo predefinito
$ hashed_password = password_hash ($ password, password_bcrypt, $ option);
// Stampa la password originale e hash
Echo "La password originale: $ password";
eco "
La password hashing utilizzando password_bcrypt: $ hashed_password";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Esempio-3: crea una password hashing utilizzando l'algoritmo password_argon2i

Crea un file PHP con il seguente script che genererà un valore hash di una password utilizzando la funzione password_hash (). L'algoritmo password_argon2i è stato utilizzato nella funzione password_hash () per generare la password hash. Le stringhe di password originale e hash verranno stampate come output dello script.

// Imposta il valore della password
$ password = 'SecretPassword';
// genera la password hashing in base all'algoritmo predefinito
$ hashed_password = password_hash ($ password, password_argon2i);
// Stampa la password originale e hash
Echo "La password originale: $ password";
eco "
La password hashing utilizzando password_argon2i: $ hashed_password";
?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Esempio-4: usando la funzione password_hash () con password_verify ()

Crea un file PHP con il seguente script per verificare la password hashing utilizzando la funzione password_verify () dopo aver generato la password hash da un dati di stringa utilizzando la funzione password_hash (). La password verrà presa dal parametro URL e verificata se la password è valida utilizzando il valore della password e i valori della password hash negli argomenti della funzione password_verify (). Se questa funzione restituirà true, la password è valida; Altrimenti, la password non è valida.

// Imposta il valore della password
$ password = 'SecretPassword';
// genera la password hashing in base all'algoritmo predefinito
$ hashed_password = password_hash ($ password, password_default);
if (ISSET ($ _ GET ['Password'])

// Assegna la password fornita dall'URL
$ v_password = $ _get ['password'];
// Controlla la validità della password utilizzando password_verify ()
if (password_verify ($ v_password, $ hashed_password))
La password echo 'è valida.';
altro
La password echo 'non è valida.';

altro
eco "La password non è fornita.";
?>

Produzione:

Dopo aver eseguito lo script sopra senza il parametro URL, verrà visualizzato il seguente output.

http: // localhost/php/pass4.PHP

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra con il valore del parametro URL, "SecretPassword ', e la password hash è stata generata per questo valore nello script. Quindi, la password è valida.

http: // localhost/php/pass4.PHP?Password = SecretPassword

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra con il valore del parametro URL, "segreto' non valido.

http: // localhost/php/pass4.PHP?password = segreto

Conclusione

Diversi modi di creare una password hash utilizzando la funzione password_hash () sono stati mostrati negli esempi di questo tutorial per aiutare gli utenti PHP ad applicare questa funzione correttamente nel proprio script.