Maison >développement back-end >tutoriel php >Comment crypter et décrypter des fichiers en toute sécurité à l'aide d'OpenSSL et d'une classe PHP personnalisée ?

Comment crypter et décrypter des fichiers en toute sécurité à l'aide d'OpenSSL et d'une classe PHP personnalisée ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-21 10:03:10845parcourir

How to Securely Encrypt and Decrypt Files Using OpenSSL and a Custom PHP Class?

Comment chiffrer et décrypter des fichiers à l'aide de Mcrypt

Mcrypt, une bibliothèque de chiffrement populaire, a été abandonnée et son utilisation n'est plus recommandée. Pour cette raison, nous explorerons une technique de chiffrement alternative utilisant l'extension OpenSSL.

Création d'une classe de chiffrement personnalisée

Pour encapsuler le processus de chiffrement, nous définissons une classe personnalisée , AES256Encryption, qui exploite l'AES-256 d'OpenSSL algorithme.

class AES256Encryption
{
    const BLOCK_SIZE = 8;
    const IV_LENGTH = 16;
    const CIPHER = 'AES256';

    //... Encryption and Decryption Methods ...
}

Utilisation

$text = 'Plain text to be encrypted';
$key = 'Encryption key';
$iv = AES256Encryption::generateIv();  // Generates a random initialization vector (IV)
$encryptedText = AES256Encryption::encrypt($text, $key, $iv);  // Encrypts the text
$decryptedText = AES256Encryption::decrypt($encryptedText, $key, $iv);  // Decrypts the encrypted text

Exemple de sortie

Original Text: Plain text to be encrypted
Encrypted: Encrypted ciphertext
Decrypted: Plain text to be encrypted

Autres considérations

  • IV Génération : Assurer la génération sécurisée du vecteur d'initialisation (IV) à l'aide de AES256Encryption::generateIv().
  • Remplissage : Le texte saisi est complété à un multiple de la taille du bloc pour garantir un cryptage approprié.
  • Encodage Base64 : Les données cryptées et déchiffrées sont codées en base64 pour commodité.
  • Exceptions : La gestion des erreurs est incluse pour signaler les problèmes potentiels lors du cryptage ou du déchiffrement.

Cette approche mise à jour utilisant OpenSSL fournit une méthode sécurisée et fiable pour crypter et déchiffrer des fichiers et des données en utilisant les dernières normes de cryptage.

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