PHP Passage_hash -Funktion

PHP Passage_hash -Funktion
Das Passwort des Benutzers einer Anwendung ist sehr wichtig, um die Anwendung vor verschiedenen Angriffen zu schützen. In PHP gibt es viele Möglichkeiten, ein sicheres Passwort zu generieren, um die Anwendung sicherer zu machen. Die Funktion password_hash () ist eine Möglichkeit, einen neuen Kennwort-Hash mit dem Einweg-Hashing-Algorithmus zu erstellen. Die Syntax dieser Funktion ist unten angegeben.

Syntax:

String | False Password_hash (String $ Passwort, Zeichenfolge | int | null $ algo [, Array $ options = []])

Das erste Argument ist obligatorisch und wird verwendet, um den String -Wert zu nehmen, der gehasht wird.

Das zweite Argument ist obligatorisch und wird verwendet, um die Ganzzahl oder Zeichenfolge aufzunehmen, die sich auf einen Algorithmus bezieht, der zum Erstellen des Kennworthashs verwendet wird. Diese Funktion unterstützt derzeit die folgenden Algorithmen.

Password_default:

Es verwendet den Bcrypt -Algorithmus, um den Passwort -Hash zu generieren.

Password_bcrypt:

Es verwendet den Algorithmus Crypt_blowfish, um den Passwort -Hash zu generieren.

Password_argon2i:

Es verwendet den Argon2i -Hashing -Algorithmus, um den Passwort -Hash zu generieren, und kann verwendet werden, wenn PHP mit Argon2 -Unterstützung zusammengestellt wurde.

Password_argon2id:

Es verwendet den Argon2ID -Hashing -Algorithmus, um den Passwort -Hash zu generieren, und kann verwendet werden, wenn PHP mit Argon2 -Unterstützung zusammengestellt wurde.

Das dritte Argument ist optional und wird verwendet, um ein Array zu definieren, das die unterstützten Optionen des gebrauchten Algorithmus enthält.

Die folgenden Optionen werden vom Algorithmus Password_bcrypt unterstützt.

Salz:

Diese Option ist jetzt veraltet. Der standardmäßige Salzwert ist besser zu verwenden.

kosten:

Es wird verwendet, um die Algorithmuskosten zu definieren, die verwendet werden sollten. Der Standardwert beträgt 10.

Die folgenden Optionen werden durch die Algorithmen Password_argon2i und Passage_argon2ID unterstützt.

Memory_Cost:

Es wird verwendet, um den maximalen Speicher in KB zu definieren, mit dem der Kennwort -Hash mit dem Argon2 -Hash generiert werden kann.

Zeitkosten:

Es wird verwendet, um die maximale Zeit zu definieren, die zum Generieren des Kennworthashs mithilfe des Argon2 -Hash verwendet werden kann.

Themen:

Es wird verwendet, um die Anzahl der Threads zu definieren, um den Passwort -Hash mit dem Argon2 -Hash zu generieren.

Die Funktion gibt das Hashed -Passwort zum Erfolg oder Falsch beim Fehler zurück.

Passage_Hash () Funktionsbeispiele

Die Verwendung der Funktion password_hash () zum Erstellen von Hashed -Passwörtern befand sich im nächsten Teil des Tutorials.

Beispiel 1: Erstellen Sie ein Hashed-Passwort mit dem Standard-Hash-Algorithmus

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, das einen Hashed -Wert eines Kennworts mit der Funktion password_hash () generiert, und der Standard -Hashing -Algorithmus wurde hier verwendet. Die originalen und Hashed -Passwort -Saiten werden als Ausgabe des Skripts gedruckt.

// Setzen Sie den Kennwortwert
$ password = 'SecretPassword';
// Generieren Sie das Hashed -Passwort basierend auf dem Standardalgorithmus
$ hashed_password = password_hash ($ password, password_default);
// Drucken Sie das Original- und Hashed -Passwort aus
Echo "Das ursprüngliche Passwort: $ Passwort";
Echo "
Das Hashed -Passwort mit Standardalgorithmus: $ hashed_password";
?>

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.

Beispiel-2: Erstellen Sie das Hashed-Passwort mit dem Kostenwert und dem Passwort_Bcrypt-Algorithmus

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, mit dem ein Hashed -Wert eines Kennworts mithilfe von password_hash () Funktionen generiert wird. Der Algorithmus Passwort_bcrypt. Sowohl die ursprüngliche als auch die Hashed -Passwort -Zeichenfolge werden als Ausgabe des Skripts gedruckt.

// Setzen Sie den Kennwortwert
$ password = 'SecretPassword';
// Legen Sie den Kostenwert für den Passwort_Bcrypt -Algorithmus fest
$ option = ["cost" => 5];
// Generieren Sie das Hashed -Passwort basierend auf dem Standardalgorithmus
$ hashed_password = password_hash ($ password, password_bcrypt, $ option);
// Drucken Sie das Original- und Hashed -Passwort aus
Echo "Das ursprüngliche Passwort: $ Passwort";
Echo "
Das Hashed -Kennwort mit password_bcrypt: $ hashed_password";
?>

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.

Beispiel-3: Erstellen Sie ein Hashed-Kennwort mit dem Algorithmus password_argon2i

Erstellen Sie eine PHP. Der Algorithmus Passwort_Argon2i wurde in der Funktion password_hash () verwendet, um das Hashed -Passwort zu generieren. Die originalen und Hashed -Passwort -Saiten werden als Ausgabe des Skripts gedruckt.

// Setzen Sie den Kennwortwert
$ password = 'SecretPassword';
// Generieren Sie das Hashed -Passwort basierend auf dem Standardalgorithmus
$ hashed_password = password_hash ($ password, password_argon2i);
// Drucken Sie das Original- und Hashed -Passwort aus
Echo "Das ursprüngliche Passwort: $ Passwort";
Echo "
Das Hashed -Passwort mit password_argon2i: $ hashed_password";
?>

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt.

Beispiel-4: Verwenden Sie die Funktion password_hash () mit der Funktion password_verify ()

Erstellen Sie eine PHP -Datei mit dem folgenden Skript, um das Hashed -Kennwort unter Verwendung der Funktion password_verify () zu überprüfen, nachdem Sie das Hashed -Kennwort aus einer String -Daten über die Funktion password_hash () generiert haben. Das Kennwort wird aus dem URL -Parameter entnommen und überprüft. Wenn diese Funktion true zurückgibt, ist das Passwort gültig. Andernfalls ist das Passwort ungültig.

// Setzen Sie den Kennwortwert
$ password = 'SecretPassword';
// Generieren Sie das Hashed -Passwort basierend auf dem Standardalgorithmus
$ hashed_password = password_hash ($ password, password_default);
if (isset ($ _ GET ['Passwort'])))

// das Passwort aus der URL zuweisen
$ v_password = $ _get ['Passwort'];
// Überprüfen Sie die Kennwortgültigkeit mithilfe von Password_verify () -Funktion
if (password_verify ($ v_password, $ hashed_password)))
Das Echo 'Passwort ist gültig.';
anders
Das Echo 'Passwort ist ungültig.';

anders
Echo "Passwort wird nicht gegeben.";
?>

Ausgang:

Nachdem das obige Skript ohne URL -Parameter ausgeführt wurde, wird die folgende Ausgabe angezeigt.

http: // localhost/php/pass4.Php

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts mit dem URL -Parameterwert angezeigt. "SecretPassword ', und das Hashed -Passwort wurde für diesen Wert im Skript generiert. Das Passwort ist also gültig.

http: // localhost/php/pass4.Php?Passwort = SecretPassword

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts mit dem URL -Parameterwert angezeigt. "Geheimnis' ungültig.

http: // localhost/php/pass4.Php?Passwort = Geheimnis

Abschluss

In den Beispielen dieses Tutorials wurden verschiedene Möglichkeiten zum Erstellen eines Hashed -Kennworts mit der Funktion password_hash () gezeigt, um den PHP -Benutzern dabei zu helfen, diese Funktion in ihrem Skript ordnungsgemäß anzuwenden.