Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Dateien mit OpenSSL in PHP verschlüsseln und entschlüsseln?

Wie kann ich Dateien mit OpenSSL in PHP verschlüsseln und entschlüsseln?

Susan Sarandon
Freigeben: 2024-11-17 02:57:03
Original
255 Leute haben es durchsucht

How Can I Encrypt and Decrypt Files Using OpenSSL in PHP?

Dateien mit MCrypt verschlüsseln und entschlüsseln

Die Mcrypt-Bibliothek bietet Funktionen für Ver- und Entschlüsselungsvorgänge in PHP. Hier ist ein Beispiel für die Verwendung zum Verschlüsseln und Entschlüsseln von Dateien:

// ENCRYPT FILE
function encryptFile() {
    $key = generateKey(); // Function to generate a secure encryption key
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-128-cbc')); // Generate a random initialization vector

    $plaintext = file_get_contents(PATH . '/ftpd/' . $file);
    $encrypted = openssl_encrypt($plaintext, 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);

    $encryptedFile = fopen(PATH . '/encrypted/' . $file . '.txt', 'w');
    fwrite($encryptedFile, $iv . $encrypted);
    fclose($encryptedFile);

    unlink(PATH . '/ftpd/' . $file);
}

// DECRYPT FILE
function decryptFile() {
    $key = generateKey(); // Function to generate the same encryption key used in encryption

    if ($handle = opendir(PATH . '/encrypted')) {
        while (false !== ($file = readdir($handle))) {
            if ($file != "." && $file != "..") {
                $encryptedFile = fopen(PATH . '/encrypted/' . $file, 'r');
                $encryptedData = fread($encryptedFile, filesize(PATH . '/encrypted/' . $file));

                $iv = substr($encryptedData, 0, openssl_cipher_iv_length('aes-128-cbc'));
                $decrypted = openssl_decrypt(substr($encryptedData, openssl_cipher_iv_length('aes-128-cbc')), 'aes-128-cbc', $key, OPENSSL_RAW_DATA, $iv);

                $decryptedFile = fopen(PATH . '/decrypted/' . $file, 'w');
                fwrite($decryptedFile, $decrypted);
                fclose($decryptedFile);

                // unlink(PATH . '/encrypted/' . $file);
            }
        }
        closedir($handle);
    }
}
Nach dem Login kopieren

Wichtige Hinweise:

  • MCrypt ist eine veraltete Bibliothek und nicht mehr zur Verwendung empfohlen. Erwägen Sie die Verwendung neuerer und sichererer Alternativen wie OpenSSL oder Libsodium.
  • Der Verschlüsselungs-/Entschlüsselungsschlüssel muss sicher generiert und vertraulich behandelt werden.
  • Initialisierungsvektoren (IVs) bieten zusätzliche Sicherheit, indem sie die Chiffretext jedes Mal eindeutig für denselben Klartext und Schlüssel.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateien mit OpenSSL in PHP verschlüsseln und entschlüsseln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage