Maison > développement back-end > tutoriel php > Comment puis-je migrer mon code PHP basé sur Mcrypt vers Openssl dans PHP 7.2 et au-delà ?

Comment puis-je migrer mon code PHP basé sur Mcrypt vers Openssl dans PHP 7.2 et au-delà ?

Mary-Kate Olsen
Libérer: 2024-12-04 01:57:10
original
205 Les gens l'ont consulté

How Can I Migrate My Mcrypt-Based PHP Code to Openssl in PHP 7.2 and Beyond?

Préparation de la suppression de Mcrypt dans PHP 7.2

À mesure que PHP 7.2 se rapproche, la dépréciation de l'extension Mcrypt devient imminente. Bien qu'Openssl constitue une alternative viable, naviguer dans cette transition peut s'avérer difficile, en particulier pour ceux qui sont moins familiers avec la cryptographie.

L'un des obstacles à surmonter consiste à convertir le code s'appuyant sur le mode Rijndael-256 CBC de Mcrypt avec préservation IV en L'équivalent d'Openssl. À l’heure actuelle, une telle conversion directe n’est pas réalisable. La raison réside dans la différence fondamentale entre Rijndael-256 et AES-256.

L'implémentation Rijndael-256 de Mcrypt fonctionne sur une taille de bloc de 256 bits, tandis que l'AES-256 d'Openssl adhère à une taille de bloc de 128 bits. En conséquence, cette différence exclut la substitution directe de l’un à l’autre. Cette limitation nécessite le rechiffrement des données pour obtenir la compatibilité avec AES-256.

Au-delà du problème d'incompatibilité, le code existant présente plusieurs problèmes de sécurité supplémentaires :

  • Manque d'authentification : L'absence de HMAC laisse les données vulnérables aux falsification.
  • Remplissage inapproprié : L'utilisation de zéro octet pour le remplissage ne respecte pas les meilleures pratiques de l'industrie, telles que le remplissage PKCS#5, qui est requis pour le cryptage en mode bloc sécurisé.
  • Sécurité des octets : Le recours à mb_substr() pour la manipulation de chaînes compromet l'octet sécurité.

Heureusement, Openssl prend en charge le remplissage PKCS#5 de manière native. Cependant, il est fortement recommandé d'utiliser des bibliothèques de chiffrement robustes, telles que defuse/php-encryption, qui répondent à ces problèmes et offrent un niveau plus élevé de protection 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!

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