Aktueller Standort: Startseite> Neueste Artikel> Überprüfen Sie die Dateiintegrität mitheid_update_stream ()

Überprüfen Sie die Dateiintegrität mitheid_update_stream ()

M66 2025-05-27

In PHP ist die Funktion von Hash_Update_Stream () ein sehr nützliches Instrument für die schrittweise Berechnung des Hash-Werts eines Datenstroms (z. B. eine Datei). Diese Funktion wird normalerweise verwendet, um die Integrität einer Datei zu überprüfen und sicherzustellen, dass die Datei während der Übertragung oder Speicherung nicht manipuliert wird. In diesem Artikel wird vorgestellt, wie die Funktion von Hash_Update_Stream () verwendet wird, um die Integrität einer Datei zu überprüfen.

1. Was ist die Funktion von Hash_Update_Stream () ?

Hash_Update_Stream () ist eine Funktion, die von PHP bereitgestellt wird, um den Wert eines Hash -Kontextes zu aktualisieren. Sein Zweck ist es, den Hash -Wert der Datei nach und nach durch Verarbeitung eines bestimmten Datenstroms (normalerweise eine Datei) zu berechnen.

Die Syntax ist wie folgt:

 bool hash_update_stream ( resource $context , resource $file_handle [, int $length = 8192 ] )
  • $ context : Hash -Kontextressource, normalerweise erstellt von Hash_init () .

  • $ file_handle : Ein bereits geöffnetes Dateihandle (z. B. eine über fopen () geöffnete Datei).

  • $ Länge : Die Anzahl der Bytes, die jedes Mal beim Lesen des Streams gelesen werden, beträgt der Standard 8192 Bytes.

2. Warum verwenden Sie Hash_Update_Stream (), um die Dateiintegrität zu überprüfen?

Die Überprüfung der Dateiintegrität ist eine wichtige Möglichkeit, um sicherzustellen, dass die Dateien während des Speichers oder der Übertragung nicht geändert oder beschädigt werden. In vielen Anwendungsszenarien ist die Gewährleistung der Dateiintegrität für die Sicherheit und die Datenkonsistenz von entscheidender Bedeutung.

Sie möchten beispielsweise überprüfen, ob die von einem Server heruntergeladenen Dateien während der Übertragung manipuliert wurden, oder überprüfen, ob die lokal gespeicherten Dateien nicht beschädigt sind. Zu diesem Zeitpunkt können Sie bestätigen, ob die Datei gleich bleibt, indem Sie den Hash -Wert der Datei vergleichen.

3.. Verwenden Sie Hash_Update_Stream (), um die Dateiintegrität zu überprüfen

Wir können Hash_Update_Stream () verwenden, um die Datei Schritt für Schritt zu lesen und seinen Hash -Wert zu berechnen. Mit diesem Ansatz können wir sicherstellen, dass jeder Teil des Dateiinhalts verarbeitet wird und schließlich den vollständigen Hash der Datei erhalten. Wenn sich eine Datei während der Übertragung oder des Speichers jederzeit ändert, ändert sich ihr Hash -Wert, der verwendet werden kann, um die Integrität der Datei zu erkennen.

4. Beispielcode

Hier ist ein einfaches Beispiel, das zeigt, wie die Funktion Hash_Update_Stream () verwendet wird, um die Dateiintegrität zu überprüfen.

 <?php
// Erstellen Sie einen Hash -Kontext
$context = hash_init('sha256');

// Öffnen Sie die Datei
$file_path = 'path/to/your/file.txt';
$file = fopen($file_path, 'rb');
if (!$file) {
    die('无法Öffnen Sie die Datei');
}

// verwenden hash_update_stream() Berechnen Sie nach und nach den Hash -Wert der Datei
while (!feof($file)) {
    // Jeweils lesen 8192 Bytes und aktualisieren Sie den Hash -Wert
    hash_update_stream($context, $file, 8192);
}

// Holen Sie sich den endgültigen Hash -Wert der Datei
$hash = hash_final($context);

// Der Hash -Wert der Ausgabedatei
echo "Der Hash -Wert der Datei ist: " . $hash . "\n";

// Schließen Sie die Datei
fclose($file);

// Angenommen, Sie haben zuvor den richtigen Hash der Datei gespeichert
$correct_hash = 'Vorgespannter korrekter Hash-Wert';

// Überprüfen Sie die Dateiintegrität
if ($hash === $correct_hash) {
    echo "Überprüfung der Dateiintegrität bestanden!\n";
} else {
    echo "Überprüfung der Dateiintegrität fehlgeschlagen!\n";
}
?>

In diesem Beispiel erstellen wir zunächst einen Hash -Kontext mit der Funktion von Hash_init () . Anschließend berechnen wir nach und nach den Hash -Wert der Datei, indem wir die Datei öffnen und die Funktion von Hash_Update_Stream () verwenden. Nach dem Lesen der Datei verwenden wir Hash_Final () , um den endgültigen Hash -Wert der Datei zu erhalten und sie mit dem zuvor gespeicherten Hash -Wert zu vergleichen, um die Integrität der Datei zu überprüfen.

5. Dinge zu beachten

  • Die Funktion von Hash_Update_Stream () besteht darin, Dateien Schritt für Schritt für Hash -Berechnungen zu lesen, was für die Bearbeitung großer Dateien sehr nützlich ist, da die gesamte Datei nicht sofort in den Speicher geladen wird.

  • Stellen Sie sicher, dass die Datei beim Lesen über die richtigen Zugriffsrechte verfügt. Andernfalls kann die Datei nicht geöffnet oder gelesen werden.

  • Hash_Update_Stream () eignet sich für Dateiströme, Datenströme und andere Stream -Arten und kann sehr bequem für die Hash -Berechnung von Streaming -Daten verwendet werden.

6. Verwandte Funktionen

  • Hash_init () : Initialisiert einen Hash -Kontext und gibt einen Hash -Algorithmus an (z. B. SHA256 ).

  • Hash_Update () : Der Wert, der zum Aktualisieren des Hash -Kontextes verwendet wird.

  • Hash_Final () : Erhält den endgültigen Hash -Wert.

7. Zusammenfassung

Die Verwendung der Funktion von Hash_Update_Stream () zur Überprüfung der Dateiintegrität ist eine sehr effektive Technik. Indem wir die Datei schrittweise lesen und den Hash -Wert berechnen, können wir sicherstellen, dass die Datei während der Übertragung und Speicherung nicht manipuliert oder beschädigt wird. In praktischen Anwendungen können Sie diese Methode auf mehrere Szenarien wie Datei -Download, Upload -Überprüfung und Dateiintegritätsprüfung anwenden.