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

Comment crypter et décrypter des fichiers en toute sécurité à l'aide d'AES256 en PHP ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-25 03:41:15953parcourir

How to Securely Encrypt and Decrypt Files Using AES256 in PHP?

Cryptage/déchiffrement de fichiers avec Mcrypt

Mcrypt est obsolète et son utilisation n'est plus recommandée. Cet article présente une approche alternative utilisant openssl.

Chiffrement et décryptage AES256

Cette implémentation mise à jour utilise AES256 pour le chiffrement, offrant un niveau de sécurité nettement supérieur à celui de Mcrypt. Vous trouverez ci-dessous le code révisé :

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

    public static function generateIv(bool $allowLessSecure = false): string
    {
        // Logic to generate a secure initialization vector
    }

    protected static function getPaddedText(string $plainText): string
    {
        // Logic to pad the plaintext to a multiple of the block size
    }

    public static function encrypt(string $plainText, string $key, string $iv): string
    {
        // Logic to encrypt the plaintext using AES256
    }

    public static function decrypt(string $encryptedText, string $key, string $iv): string
    {
        // Logic to decrypt the ciphertext using AES256
    }
}

Utilisation :

$text = 'Your plaintext here';
$key = 'Your encryption key';
$iv = AES256Encryption::generateIv();
$encryptedText = AES256Encryption::encrypt($text, $key, $iv);
$decryptedText = AES256Encryption::decrypt($encryptedText, $key, $iv);

// Print the results
echo "Original Text: $text" . PHP_EOL;
echo "Encrypted: $encryptedText" . PHP_EOL;
echo "Decrypted: $decryptedText" . PHP_EOL;

Ce code démontre le cryptage et le déchiffrement du texte en clair à l'aide d'AES256, garantissant une gestion sécurisée des données.

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