Heim  >  Artikel  >  Backend-Entwicklung  >  Hashing-Funktion in PHP

Hashing-Funktion in PHP

PHPz
PHPzOriginal
2024-08-29 12:47:031128Durchsuche

Die Hashing-Funktion in PHP ist eine spezielle Methode, die vordefiniert ist und zur Angabe einer Zeichenfolge in Form eines bestimmten Werts verwendet wird, der anhand der Zeichen der Zeichenfolge gemessen wird. Es ist beliebt für seine Anwendung als Verschlüsselungsalgorithmus und als Indexwertdarstellung für Elemente in der Datenbank. Die am häufigsten verwendeten Arten von Hashing-Algorithmen im Prozess der Datenverschlüsselung sind SHA1() und MD5(). In PHP gibt es vier verschiedene Arten von Hashing-Funktionen: Hash_equals, Hash_final, Hash_init und Hash_copy.

WERBUNG Beliebter Kurs in dieser Kategorie PHP-ENTWICKLER - Spezialisierung | 8-Kurs-Reihe | 3 Probetests

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Wie funktioniert die Hashing-Funktion?

PHP ist eine serverseitige Programmiersprache und ihre Hauptaufgabe besteht darin, die Back-End-Funktionalität zu verarbeiten, die für eine bestimmte Anwendung erforderlich ist. In diesem Prozess spielt die Authentifizierung eine entscheidende Rolle, da die Daten leicht durch Schwachstellen ausgenutzt werden können. Eine Möglichkeit, die Daten zu sichern, besteht darin, sie in ihrer ursprünglichen Form in der Datenbank zu speichern. Dies könnte jedoch dazu führen, dass Eindringlinge/unbefugte Personen leicht auf die Daten zugreifen und sie kompromittieren können. Diese Situation kann leicht durch die Verwendung von Hashing-Funktionen gehandhabt werden.

Hash-Funktionen verschlüsseln die Daten in ihrer wahren Form, ohne ihre Bedeutung zu ändern. Wenn also ein Benutzer die Daten in ihrer wahren Form eingibt, werden die Daten im Backend verschlüsselt und somit erfolgt die Authentifizierung und Autorisierung des Datenprozesses. Die am häufigsten verwendeten Hash-Algorithmen sind md5(), sha1() und einige Hash-Funktionen. Diese Algorithmen werden vom Entwickler verwendet, um zu authentifizieren, ob die vom Benutzer eingegebenen Daten korrekt sind oder nicht, um mit dem Prozess fortzufahren.

1. MD5()

Dieser Algorithmus ist einer der leistungsstarken Hashing-Algorithmen, der den MD5-Hash berechnet, d. h. den Hash einer 16- oder 32-stelligen Hexadezimalzahl einer bestimmten Zeichenfolge. Diese übergebene Zeichenfolge wird in die verschlüsselte Hexadezimalform umgewandelt.

Syntax:

string md5 ($string, $getRawOutput)

Die obige Syntax gab den $string als Eingabestring an. Die Rohausgabe ist eine optionale Eingabe, da der Entwickler sie in 16 Bit oder 32 Bit konvertieren möchte. Wenn 16 Bit aktiviert werden müssen, muss es auf TRUE Boolean gesetzt und an die Funktion übergeben werden. Wenn es nicht eingestellt ist, wird automatisch der Standardwert von 32 Bit eingestellt.

Beispiel:

md5 (EduCBA, TRUE)

2. SHA1 ()

Dieser Algorithmus ist einer der leistungsstarken Hashing-Algorithmen, der den sha1-Hash berechnet, d. h. den Hash im 20-stelligen Binärformat oder die 40-stellige Hexadezimalzahl einer bestimmten Zeichenfolge. Diese übergebene Zeichenfolge wird in die verschlüsselte Hexadezimalform umgewandelt.

Syntax:

string sha1 ($string, $getRawOutput)

Die obige Syntax gab den $string als Eingabestring an. Die Rohausgabe ist eine optionale Eingabe, da der Entwickler eine 20-Bit- oder 40-Bit-Größe haben möchte. Wenn 20 Bit aktiviert werden müssen, muss es auf TRUE Boolean gesetzt und an die Funktion übergeben werden. Wenn es nicht eingestellt ist, wird automatisch der Standardwert von 40 Bit eingestellt.

Beispiel:

sha1 (EduCBA, TRUE)

Hashing-Funktion in PHP

Im Folgenden sind einige Hashing-Funktionen aufgeführt, die in PHP zum Verschlüsseln/Konvertieren der Daten vom Original in die gehashte Form verwendet werden.

1. Hash_equals

Diese Funktion vergleicht die beiden Zeichenfolgen gleichzeitig, ob sie gleich sind oder nicht. Diese Funktion gibt TRUE zurück, wenn die Zeichenfolgen gleich sind, und FALSE, wenn die Zeichenfolgen nicht gleich sind. Beide Argumente sollten gleich sein, um die Zeichenfolgen zu vergleichen. Andernfalls wird sofort „false“ zurückgegeben, ohne dass die Zeichenfolgen überhaupt alphabetisch verglichen werden, und manchmal kann bei einem Timing-Angriff auch die Länge der Zeichenfolge angezeigt werden.

2. Hash_final

Diese Funktion gibt einen Hash-Digest der an diese Funktion übergebenen Eingabezeichenfolge zurück. Wenn die Rohausgabe auf TRUE gesetzt ist, werden rohe Binärdaten ausgegeben, und wenn sie auf FALSE gesetzt ist, wird eine Hexadezimalzahl in Kleinbuchstaben ausgegeben. Diese Funktion gibt einen berechneten hexadezimalen Digest der Zeichenfolge als Ausgabe zurück.

3. Hash_init

Diese Funktion wird zusammen mit den Hashing-Algorithmen verwendet, d. h. md5(), sha() usw. Diese Funktion erzeugt zusammen mit den Hashing-Algorithmen eine Ausgabe zur Verwendung mit hash_update(), hash final() usw. Die Ausgabe von hash_init wird in einem String oder einer Variablen gespeichert und an eine der Funktionen übergeben.

4. Hash_copy

Diese Funktion wird verwendet, um den Hashing-Kontext zu kopieren. Die als Eingabe an die Funktion übergebene Zeichenfolge wird von einem der in der Funktion hash_init() verwendeten Algorithmen gehasht und die entsprechende Ausgabe wäre die gehashte Zeichenfolge, die an diese Funktion übergeben wird. Diese Funktion gibt eine gehashte Form der Ausgabe der Funktion hash_init zurück.

Examples of Hashing Function in PHP

The following is a list of hashing function in PHP explained in detail,

Example #1

Code:

<?php
$c = hash_init("md5");
hash_update($c, "content");
$copy_c = hash_copy($c);
echo hash_final($c);
hash_update($copy_c, "content");
echo hash_final($copy_c), "\n";
?>

Output:

Hashing-Funktion in PHP

Example #2

Code:

<?php
$expected  = crypt('leela123', '$2a$07$user$');
$right   = crypt('leela123', '$2a$07$user$');
$wrong = crypt('leeeela233',  '$2a$07$usedwrongstring$');
var_dump(hash_equals($expected, $right));
var_dump(hash_equals($expected, $wrong));
?>

Output:

Hashing-Funktion in PHP

Example #3

Code:

<?php
$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>

Output:

Hashing-Funktion in PHP

Conclusion

In this article, we discussed what is hashing and its various algorithms. Also, we discussed a few hashing functions used in PHP to encrypt the data to prevent malicious and vulnerable attacks. Because of these attacks, the data is not secure and loss of data occurs. So, the hashing technique was introduced so that there will be no loss of data and it will be secured by various attacks.

Das obige ist der detaillierte Inhalt vonHashing-Funktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP-String-FunktionenNächster Artikel:PHP-String-Funktionen