Aktueller Standort: Startseite> Neueste Artikel> Hash -Überprüfung von hochgeladenen Bildern in Echtzeit

Hash -Überprüfung von hochgeladenen Bildern in Echtzeit

M66 2025-05-18

In der Webentwicklung ist es sehr wichtig, die Integrität von Dateien zu überprüfen und die Manipulationen von Dateien zu verhindern. PHP bietet einige leistungsstarke Dateimanipulationsfunktionen, mit denen die Sicherheit und Integrität von hochgeladenen Dateien gewährleistet werden können. Die Funktion von Hash_Update_Stream ist ein nützliches Tool für die Echtzeit-Update von Hash-Werten. Es ist geeignet, den Hash -Wert einer Datei Schritt für Schritt bei der Verarbeitung großer Dateien (z. B. Bilder) zu berechnen, ohne die gesamte Datei in den Speicher zu laden.

In diesem Artikel wird vorgestellt, wie die Funktion von Hash_Update_Stream verwendet wird, um die Echtzeit-Hash-Überprüfung von hochgeladenen Bildern durchzuführen und sicherzustellen, dass der Dateiinhalt nicht geändert wurde.

1. Grundkonzepte

Während des Datei-Upload-Prozesses können wir einen Hash-Algorithmus (wie SHA-256 oder MD5) verwenden, um den Hash-Wert der Datei zu berechnen, um sicherzustellen, dass die Datei nicht manipuliert wurde. Durch Vergleich des Hash -Werts der hochgeladenen Datei mit dem erwarteten Hash -Wert können wir feststellen, ob die Datei während des Übertragungsprozesses manipuliert wurde.

Die Funktion von Hash_Update_Stream ist eine erweiterte Funktion in PHP, mit der wir den Hash -Wert in Echtzeit beim Streamieren der Datei aktualisieren können. Dies ist sehr nützlich, um große Dateien zu verarbeiten, da das Laden der gesamten Datei in den Speicher vermieden wird.

2. Verwenden Sie die Funktion von Hash_Update_Stream

2.1 Datei -Upload- und Hash -Berechnung

Angenommen, wir haben ein HTML -Formular, mit dem Benutzer Bilder hochladen können. Wir werden PHP verwenden, um das Hochladen von Dateien zu verarbeiten und deren Hash zu berechnen. Wir werden den Inhalt der Datei streamen und den Hash -Wert der Datei während des Upload -Prozesses in Echtzeit aktualisieren.

Hier ist ein einfaches Beispiel für PHP-Code, das zeigt, wie die Funktion von Hash_Update_Stream verwendet wird, um die Echtzeit-Hash-Überprüfung von hochgeladenen Bildern durchzuführen.

 <?php
// Upload -Verzeichnis einrichten
$uploadDir = 'uploads/';

// Überprüfen Sie, ob Dateien hochgeladen werden
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['image'])) {
    $file = $_FILES['image'];
    
    // Stellen Sie sicher, dass die hochgeladene Datei ein Bild ist
    $allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];
    if (in_array($file['type'], $allowedMimeTypes)) {
        
        // Holen Sie sich einen vorübergehenden Pfad zur Datei
        $tempFile = $file['tmp_name'];
        
        // Öffnen Sie den Dateistrom
        $fileHandle = fopen($tempFile, 'rb');
        
        // Wählen Sie einen Hashing -Algorithmus aus
        $hashContext = hash_init('sha256');
        
        // verwendenhash_update_streamStream Hash -Update auf Dateien
        while ($chunk = fread($fileHandle, 8192)) {
            hash_update_stream($hashContext, $chunk);
        }

        // Holen Sie sich den endgültigen Hash -Wert
        $fileHash = hash_final($hashContext);
        
        // Drucken Sie den Hash -Wert der hochgeladenen Datei aus
        echo "Uploaded file hash: " . $fileHash . "<br>";

        // Schließen Sie den Dateistrom
        fclose($fileHandle);
        
        // Speichern Sie die Datei im Zielverzeichnis
        move_uploaded_file($tempFile, $uploadDir . $file['name']);
        
        // Nehmen wir an, wir prezieren den Hash -Wert der Datei
        $expectedHash = 'Vorbereiteter Hash-Wert';
        
        // Vergleichen Sie die Hash -Werte
        if ($fileHash === $expectedHash) {
            echo "Datei -Hash -Überprüfung erfolgreich!";
        } else {
            echo "Datei -Hash -Überprüfung fehlgeschlagen!";
        }
    } else {
        echo "Nur Bilddatei -Uploads werden unterstützt!";
    }
}
?>

<!-- Formular hochladen -->
<form method="POST" enctype="multipart/form-data">
    <label for="image">Laden Sie Bilder hoch:</label>
    <input type="file" name="image" id="image">
    <button type="submit">Hochladen</button>
</form>

2.2 Code Parsen

  1. Datei -Upload -Formular : Erstens haben wir ein HTML -Formular erstellt, über das Benutzer Bilddateien hochladen können.

  2. Überprüfen Sie den hochgeladenen Dateityp : Wenn Sie Dateien bearbeiten, überprüfen Sie zunächst, ob der hochgeladene Dateityp das zulässige Bildformat ist (z. B. JPEG, PNG, GIF).

  3. Öffnen Sie den Dateifluss : Öffnen Sie eine temporäre Datei, mit der Dateien im Binärmodus über die FOPEN -Funktion hochgeladen werden.

  4. Initialisieren Sie den Hash-Algorithmus : Verwenden Sie die Funktion Hash_init , um einen Hash-Algorithmus (wie SHA-256) auszuwählen.

  5. Echtzeit-Update-Hash-Wert : Lesen Sie über die Funktion Hash_Update_Stream den Block des Dateiinhalts nach Block und aktualisieren Sie den Hash-Wert in Echtzeit. Die Fread -Funktion liest einen Teil der Daten in der Datei und jedes Mal 8 KB Inhalt.

  6. Berechnen Sie den Hash -Wert : Verwenden Sie nach dem Lesen aller Dateiinhalte die Funktion Hash_final , um den endgültigen Hash -Wert zu erhalten.

  7. Datei Speichern : Wenn die Hash -Überprüfung bestanden wird, verschieben Sie die Datei in das angegebene Upload -Verzeichnis.

  8. Hash -Überprüfung : Wir überprüfen, ob die Datei durch Vergleich des berechneten Hash -Werts mit dem erwarteten Hash -Wert manipuliert wurde.

3.. Warum Wählen Sie Hash_Update_Stream ?

Die Funktion von Hash_Update_Stream kann bei der Verarbeitung großer Dateien Speicherüberlaufprobleme vermeiden. Es liest die Datei als Stream, liest jeweils ein kleines Datenstück (in diesem Fall 8 KB) und aktualisiert den Hash -Wert für jedes Datenwert. Das Streaming kann den Speicherverbrauch erheblich reduzieren, insbesondere für große Dateien, im Vergleich zu Methoden zur Berechnung von Hash -Werten, indem die gesamte Datei in Speicher geladen wird.

4. Schlussfolgerung

Die Verwendung der Funktion Hash_Update_Stream zur Datei -Hash -Überprüfung ist ein effizienter und sicherer Weg, insbesondere beim Umgang mit großen Dateien. Durch die Berechnung des Hash -Werts der Datei in Echtzeit kann die Integrität und Sicherheit des Dateiinhalts während des Upload -Prozesses des Datei sichergestellt werden und verhindert, dass Dateien manipuliert werden.