web-dev-qa-db-fra.com

PHP 7.2 avec mcrypt sous Windows

Il existe de nombreux systèmes hérités dont les dépendances sur la mcrypt de la PHP sont extrêmement importantes et vitales (y compris le stockage des données dans une base de données). Je dois trouver un moyen de maintenir cette bibliothèque lors de la mise à niveau vers PHP 7.2 (qui fonctionnait déjà très bien).

Mon environnement de test local est Windows. L'environnement en direct est exécuté sur CentOS.

Certaines des réponses que j'ai vues sont le déchiffrement et le changement de mcrypt en openssl ( Je pense que ce n'est pas possible pour le moment car il y a beaucoup de données à déchiffrer ).

Une autre méthode consiste à télécharger une version inférieure de PHP avec mcrypt- support, à copier l'extension et à l'ajouter à php.ini (je ne connais même pas le dossier).

La mise à niveau de PHP vers la version 5.6 n'est pas appropriée en raison de problèmes de sécurité.

Une lumière dans ce qui pourrait être fait dans ce scénario?

3
Danilo Davanso

En gros, je pense que vous avez mentionné toutes les possibilités et que vous n’avez pas le choix. Ne pas rétrograder à PHP 5.6, cette approche n'a pas d'avenir}

MCrypt a été supprimé de PHP pour l'une des principales raisons pour lesquelles vous souhaitez mettre à niveau PHP: Sécurité. La bibliothèque MCrypt n'est plus maintenue. Par conséquent, l'installation de l'extension MCrypt est également une mauvaise idée}. Mais cela peut être une solution temporaire (suivez par exemple ces instructions https://serverpilot.io/community/articles/how-to-install-the-php-mcrypt-extension.html ).

Le seule la bonne solution consiste à migrer de mcrypt vers quelque chose else. Il y a déjà des questions sur ce sujet sur Stackoverflow (par exemple, Mise à niveau de ma bibliothèque de chiffrement de Mcrypt vers OpenSSL ). Alternativement, vous pouvez utiliser une bibliothèque de chiffrement. La migration d'une grande quantité de code/données peut être un problème, mais c'est l'approche la plus prospective dans ce cas.

9
Blackbam

Notez qu’aucun code ni aucune information sur les options/codes mcrypt.

Probablement le seul problème de remplissage null non standard utilisé par mcrypt. Pour décrypter avec une autre implémentation qui ne prend pas en charge le remplissage nul (non standard), il suffit de déchiffrer sans remplissage, puis de supprimer le remplissage nul.

Si vous devez également chiffrer la même chose que mcrypt, ajoutez simplement un remplissage nul et un chiffrement sans remplissage.

Envisagez vraiment de migrer le cryptage actuel ou d’ajouter un indicateur indiquant que le cryptage est (ou non) compatible mcrypt.

0
zaph