Maison >développement back-end >tutoriel php >Comment puis-je crypter et décrypter en toute sécurité des fichiers en PHP à l'aide de bibliothèques modernes ?

Comment puis-je crypter et décrypter en toute sécurité des fichiers en PHP à l'aide de bibliothèques modernes ?

DDD
DDDoriginal
2024-11-19 14:55:02876parcourir

How Can I Securely Encrypt and Decrypt Files in PHP Using Modern Libraries?

Cryptage et déchiffrement de fichiers avec Mcrypt : une approche moderne

Introduction

Mcrypt, une fois une bibliothèque de chiffrement populaire pour PHP, est obsolète et son utilisation n'est plus recommandée. Pour un cryptage de fichiers sécurisé et fiable, des alternatives modernes comme OpenSSL ou Sodium PHP fournissent des solutions robustes.

Fonction de cryptage

Voici une fonction de cryptage mise à jour utilisant OpenSSL :

function encryptFile($fileData, $key)
{
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('AES-256-CBC'));
    $encryptedData = openssl_encrypt($fileData, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $encryptedData);
}

Fonction de décryptage

De même, la fonction de décryptage suivante utilise la nouvelle bibliothèque :

function decryptFile($encryptedData, $key)
{
    $ivSize = openssl_cipher_iv_length('AES-256-CBC');
    $iv = substr($encryptedData, 0, $ivSize);
    $encryptedData = substr($encryptedData, $ivSize);
    $decryptedData = openssl_decrypt($encryptedData, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
    return $decryptedData;
}

Utilisation

Pour crypter un fichier, lisez son contenu dans une variable, appelez la fonction encryptFile avec le contenu et la clé de cryptage, et enregistrez les données cryptées dans le fichier de sortie.

Pour le décryptage, lisez le contenu du fichier crypté dans une variable, appelez la fonction decryptFile avec les données cryptées et la clé de déchiffrement, et écrivez les données déchiffrées dans le fichier de sortie.

Conclusion

En tirant parti du cryptage moderne bibliothèques, vous pouvez crypter et décrypter en toute sécurité des fichiers en PHP, garantissant ainsi la confidentialité et l'intégrité des données sensibles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn