Maison > développement back-end > tutoriel php > Comment migrer mon code de cryptage PHP Mcrypt vers OpenSSL en PHP 7.2 ?

Comment migrer mon code de cryptage PHP Mcrypt vers OpenSSL en PHP 7.2 ?

Barbara Streisand
Libérer: 2024-12-06 20:01:12
original
805 Les gens l'ont consulté

How to Migrate My PHP Mcrypt Encryption Code to OpenSSL in PHP 7.2?

Préparation à la suppression de Mcrypt dans PHP 7.2 : conversion du code de Mcrypt vers Openssl

Avec l'avènement de PHP 7.2, l'extension Mcrypt bien-aimée sera progressivement supprimée. En tant que développeur, il est crucial de se préparer à ce changement et d'envisager d'adopter l'alternative Openssl, plus sécurisée.

Cet article se concentre sur un défi courant rencontré par les développeurs pendant la transition : convertir le code de Mcrypt vers Openssl tout en préservant AES 256. CBC et IV.

Considérez le code Mcrypt suivant :

function encrypt($masterPassword, $data) {
    // Mcrypt AES 256 CBC operations
    $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);
    $encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv);
    return base64_encode($iv . $encrypted);
}

function decrypt($masterPassword, $base64) {
    // Mcrypt AES 256 CBC operations
    $key = mb_substr(hash('SHA256', $masterPassword), 0, $keySize);
    $data = base64_decode($base64);
    $iv = substr($data, 0, $ivSize);
    $encrypted = substr($data, $ivSize, strlen($data));
    $decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_CBC, $iv);
    return trim($decrypted);
}
Copier après la connexion

Pour convertir ce code en Openssl, vous devez être conscient d'une différence cruciale : le Rijndael-256 de Mcrypt n'est pas le même que l'AES-256. OpenSSL prend en charge AES-256, qui est Rijndael-128 avec une clé de 256 bits.

Par conséquent, malheureusement, la conversion directe du code n'est pas possible. Vous devrez recrypter toutes vos données à l'aide des opérations AES-256 appropriées.

De plus, le schéma de cryptage Mcrypt actuel manque d'authentification, de remplissage approprié et de sécurité des octets. Il est fortement recommandé d'adopter une bibliothèque de chiffrement plus robuste comme defuse/php-encryption pour une sécurité améliorée.

En comprenant les différences entre Mcrypt et Openssl et en comblant les lacunes du schéma de chiffrement existant, vous pouvez vous préparer efficacement à la suppression de Mcrypt dans PHP 7.2 et maintenir l'intégrité et la sécurité de vos données crypté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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal