Aktueller Standort: Startseite> Neueste Artikel> Wie vervollständige ich die Hash -Berechnung mit Hash_Final in PHP?

Wie vervollständige ich die Hash -Berechnung mit Hash_Final in PHP?

gitbox 2025-05-20

In PHP ist ein Hashing -Algorithmus ein Prozess der Zuordnung von Eingabedaten jeder Länge, um Daten einer festen Länge auszugeben. PHP liefert eine Vielzahl von Hash-Algorithmen, die über die integrierte Hash () -Funktion oder in Kombination mit der Funktion Hash_Final () berechnet werden können, um die schrittweise Hash-Berechnung zu vervollständigen. In diesem Artikel werden wir ausführlich erklären, wie die Funktion Hash_Final () in PHP verwendet wird, um die Hash -Berechnung zu vervollständigen.

Was ist die Funktion von Hash_Final () ?

Hash_Final () ist eine Funktion, die für die Hash -Berechnung in PHP verwendet wird. Ihr Ziel ist es, das Endergebnis des Hash -Kontextes zurückzugeben und den Hash -Kontext zu löschen. Normalerweise mit Hash_init () und Hash_Update () verwendet.

  • Hash_init () : Initialisiert einen Hash -Kontext.

  • Hash_Update () : Geben Sie Daten in den Hash -Kontext ein.

  • Hash_Final () : Vollständige Hash -Berechnung und geben Sie das Ergebnis zurück.

Wie vervollständige ich die Hash -Berechnung mit Hash_Final () ?

Das Folgende ist ein einfaches Beispiel für die Verwendung von Hash_Final (), um die Hash -Berechnungen zu vervollständigen. Wir werden durch Schritte demonstrieren, wie man den Hash -Kontext initialisiert, die Daten aktualisiert und schließlich den Hash -Wert berechnet.

 <?php
// 1. Initialisieren Sie den Hash -Kontext
$algorithm = 'sha256'; // wählen SHA-256 Algorithmus
$context = hash_init($algorithm);

// 2. Daten aktualisieren
$data1 = "Hello, this is the first part of the data.";
$data2 = "This is the second part of the data.";
hash_update($context, $data1);
hash_update($context, $data2);

// 3. Berechnen Sie den Hash und geben Sie das Ergebnis aus
$hash = hash_final($context);
echo "The final hash is: " . $hash . "\n";
?>

Code Beschreibung:

  1. Initialisieren Sie den Hash -Kontext : Initialisieren Sie einen Hash -Kontext über die Funktion von Hash_init () . Wir haben den SHA256- Algorithmus gewählt, was bedeutet, dass der Ausgang ein 256-Bit-Long-Hash-Wert ist.

  2. Hash -Kontext aktualisieren : Geben Sie Daten mehrmals in den Hash -Kontext über die Funktion von Hash_Update () ein. Hier fügen wir in zweimal unterschiedlichen Saiten hinzu.

  3. Berechnen Sie den endgültigen Hash -Wert : Rufen Sie Hash_Final () auf, um den endgültigen Hash -Wert zu erhalten. Zu diesem Zeitpunkt wird die Hash -Berechnung abgeschlossen und das Berechnungsergebnis zurückgegeben.

Gemeinsame Verwendung der Funktion von Hash_final ()

Hash_Final () kann nicht nur für Hash -Berechnungen eines einzelnen Datenstroms verwendet werden, sondern wird auch häufig bei Verarbeitung von Dateien oder Streaming -Daten verwendet. Wenn Sie beispielsweise eine große Datei haben, den Hash -Kontext mehrmals aktualisieren und schließlich den Hash -Wert der Datei über Hash_Final () berechnen müssen.

 <?php
// Beispiel:Hashing des Dateiinhalts
$filename = "largefile.txt";
$context = hash_init('sha256');

// Öffnen Sie die Datei
$file = fopen($filename, 'rb');
if ($file) {
    // Lesen Sie den Dateiinhalt in Töpfen und aktualisieren Sie den Hash -Kontext
    while (!feof($file)) {
        $chunk = fread($file, 8192);
        hash_update($context, $chunk);
    }
    fclose($file);

    // Holen Sie sich den endgültigen Hash -Wert der Datei
    $file_hash = hash_final($context);
    echo "File hash: " . $file_hash . "\n";
} else {
    echo "Could not open the file.\n";
}
?>

Im obigen Code erhalten wir endlich den vollständigen Hash -Wert der Datei über Hash_Final (), indem wir den Block des Dateiinhalts per Block lesen und an Hash_UpDate () weitergeben. Dies ist sehr effizient für die Behandlung großer Dateien.

Parameter der Funktion von Hash_final ()

Der Funktionsprototyp von Hash_Final () lautet wie folgt:

 string hash_final ( resource $context, bool $raw_output = false )
  • $ context : Die von der Funktion von Hash_init () zurückgegebene Hash -Kontext -Ressource.

  • $ raw_output (optional): Wenn auf true festgelegt wird, geben Sie den Hash -Wert im ursprünglichen Binärformat zurück, andernfalls geben Sie das druckbare hexadezimale Format zurück (Standard).

Anwendungsszenarien

  1. Überprüfung der Datenintegrität : Sie können Hash_Final () verwenden, um den Hash -Wert einer Datei oder eines Datenstroms zu berechnen, um zu überprüfen, ob sich die Daten während der Übertragung oder gespeicherten Prozeduren geändert haben.

  2. Kennwortspeicher : Hash_Final () kann verwendet werden, um den Hash -Wert des Kennworts zu berechnen, wenn sich der Benutzer registriert und in der Datenbank speichert, wodurch die Sicherheit des Systems verbessert wird.

  3. Digitale Signatur : Hash_Final () kann in Verbindung mit anderen Verschlüsselungsalgorithmen verwendet werden, um digitale Datensignaturen zu generieren, um die Authentizität und Integrität der Daten zu gewährleisten.

Zusammenfassen

In PHP ist die Funktion von Hash_Final () eines der wichtigsten Instrumente für die Abschluss der Hash -Berechnung. Durch Kombination von Hash_init () , Hash_Update () und Hash_Final () kann der Hash -Wert von beliebigen Daten flexibel berechnet werden und wird in Feldern wie Datenüberprüfung, die Kennwortspeicher, die Überprüfung der Dateiintegrität usw. häufig verwendet, ob die Verarbeitung von String -Daten oder die Verarbeitung großer Dateien, Hash_Final () .