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); }
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!