Einführung in die Hashing-Funktion in PHP?
Bevor wir das Konzept der Hashing-Funktion in PHP verstehen, wollen wir verstehen, was Hashing ist.
Hashing ist die Umwandlung eines Zeichensatzes in einen Wert oder Schlüssel fester Länge, der die ursprüngliche Zeichenfolge darstellt. Hashing wird auch in der Datenbank verwendet, um Elemente zu indizieren und abzurufen, da das Auffinden eines Elements mithilfe kürzerer Hash-Schlüssel schneller und einfacher wird als das Auffinden mit dem ursprünglichen Wert. Es wird auch in vielen Verschlüsselungsalgorithmen aus geschäftlicher Sicht verwendet.
In PHP werden Hashing-Funktionen und -Algorithmen verwendet, um die Daten zu verschlüsseln, sodass die Suche einfacher und schneller als der ursprüngliche Wert wird. Die Hash-Funktionen werden verwendet, um den Prozess zu vereinfachen, da sie den ursprünglichen Wert indizieren und zu jedem Zeitpunkt, an dem dies erforderlich ist, verwendet werden. Es ist immer eine Einbahnstraße. Eine gute Hash-Funktion sollte nicht dieselbe Ausgabe oder denselben Hash-Wert für zwei oder viele verschiedene vom Benutzer eingegebene Eingaben erzeugen. Wenn die Hash-Funktion dieselbe Ausgabe für zwei verschiedene Eingaben erzeugt, spricht man von einer Kollision.
Wie funktioniert die Hashing-Funktion und ihre Syntax?
PHP ist eine serverseitige Programmiersprache, deren Hauptaufgabe darin besteht, die für eine bestimmte Anwendung erforderlichen Back-End-Funktionen zu verarbeiten. In diesem Prozess spielt die Authentifizierung eine wichtige Rolle, da Schwachstellen die Daten leicht ausnutzen können. Eine Möglichkeit, die Daten zu sichern, besteht darin, sie in ihrer ursprünglichen Form in der Datenbank zu speichern. Dies kann jedoch dazu führen, dass der Eindringling / Unbefugte die Daten leicht entgegennimmt und sie angreifen kann. Diese Situation kann leicht durch die Verwendung von Hashing-Funktionen behandelt 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 wenige Hash-Funktionen. Diese Algorithmen werden vom Entwickler verwendet, um zu authentifizieren, ob die vom Benutzer eingegebenen Daten korrekt sind oder nicht.
1. MD5 ()
Dieser Algorithmus ist einer der leistungsstärksten Hashing-Algorithmen, der den md5-Hash berechnet, dh den Hash einer 16- oder 32-stelligen Hexadezimalzahl einer bestimmten Zeichenfolge. Diese übergebene Zeichenfolge wird in die verschlüsselte hexadezimale Form konvertiert.
Syntax: string md5 ($ string, $ getRawOutput)
Die obige Syntax gab die $ Zeichenfolge als Eingabezeichenfolge 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 muss, muss es auf TRUE Boolean gesetzt und an die Funktion übergeben werden. Ist dies nicht der Fall, wird der Standardwert von 32 Bit automatisch festgelegt.
Beispiel: md5 (EduCBA, TRUE)
2. SHA1 ()
Dieser Algorithmus ist einer der leistungsstärksten Hashing-Algorithmen, der den sha1-Hash berechnet, dh den Hash eines Binärformats mit 20 Zeichen oder eine Hexadezimalzahl mit 40 Zeichen für eine bestimmte Zeichenfolge. Diese übergebene Zeichenfolge wird in die verschlüsselte hexadezimale Form konvertiert.
Syntax: string sha1 ($ string, $ getRawOutput)
Die obige Syntax gab die $ Zeichenfolge als Eingabezeichenfolge an. Die Rohausgabe ist eine optionale Eingabe, da der Entwickler eine 20-Bit- oder 40-Bit-Ausgabe wünscht. Wenn 20 Bit aktiviert werden müssen, muss es auf TRUE Boolean gesetzt und an die Funktion übergeben werden. Ist dies nicht der Fall, wird der Standardwert von 40 Bit automatisch festgelegt.
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 von der ursprünglichen in die gehashte Form verwendet werden.
1. Hash_equals
Diese Funktion vergleicht die beiden Zeichenfolgen gleichzeitig, unabhängig davon, 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 identisch sein, um die Zeichenfolgen zu vergleichen. Andernfalls wird sofort false zurückgegeben, ohne die Zeichenfolgen alphabetisch zu vergleichen. Manchmal kann die Länge der Zeichenfolge auch im Falle eines Timing-Angriffs angezeigt werden.
2. Hash_final
Diese Funktion gibt einen Hash-Digest der an diese Funktion übergebenen Eingabezeichenfolge zurück. Wenn der Raw-Ausgang auf TRUE gesetzt ist, werden binäre Rohdaten ausgegeben, und wenn er 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, dh 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 gespeichert in einem String oder einer Variablen und an eine der Funktionen übergeben.
4. Hash_copy
Diese Funktion wird verwendet, um den Hash-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 Hash-Form der Ausgabe der Funktion hash_init zurück.
Beispiele für Hashing-Funktionen in PHP
Das Folgende ist eine Liste der Hashing-Funktionen in PHP, die im Detail erklärt werden:
Beispiel 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";
?>
Ausgabe:
Beispiel # 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));
?>
Ausgabe:
Beispiel # 3
Code:
<_?php$hash = hash_init('sha1');
hash_update($hash, 'This is an example of PHP Hash function');
echo hash_final($hash);
?>
Ausgabe:
Fazit
In diesem Artikel haben wir uns mit dem Hashing und seinen verschiedenen Algorithmen befasst. Außerdem haben wir einige Hashing-Funktionen besprochen, die in PHP zum Verschlüsseln der Daten verwendet werden, um böswillige und anfällige Angriffe zu verhindern. Aufgrund dieser Angriffe sind die Daten nicht sicher und es kommt zu Datenverlust. Daher wurde die Hashing-Technik eingeführt, damit keine Daten verloren gehen und durch verschiedene Angriffe gesichert werden.
Empfohlene Artikel
Dies ist eine Anleitung zur Hashing-Funktion in PHP. Hier besprechen wir die Funktionsweise, Syntax und Top-4-Hashing-Funktion in PHP mit Beispielen und Code-Implementierung. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren.
- Arten von Funktionen in PHP mit Beispielen
- Wie prüfe ich Palindrome in PHP?
- Sortierung des assoziativen Arrays in PHP
- Wie konvertiere ich das Datumsformat in PHP?