IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction mcrypt_encrypt dépréciée ou disparue depuis PHP > 7.0 [PHP 7]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut Fonction mcrypt_encrypt dépréciée ou disparue depuis PHP > 7.0
    Bonjour,

    Cela fait bien 15 jours que je cherche désespérément une alternative pour remplacer la fonction PHP disparue mcrypt_encrypt mode de codage MCRYPT_RIJNDAEL_256 , MCRYPT_MODE_CBC.
    J'ai le même principe de code qui produit exactement le même résultat de cryptage en visual basic (microsoft visual studio) avec comme options :
    myRijndael.Padding = PaddingMode.Zeros
    myRijndael.Mode = CipherMode.CBC
    myRijndael.Key Size = 256
    myRijndael.BlockSize = 256

    Ci - dessous la fonction PHP en cause :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $key ="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" ; // 32 caractères
    $iv = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy" ; // 32 caractères
     
    function encryptRJ256($key,$iv,$string_to_encrypt) { 
    	$rtn = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $string_to_encrypt, MCRYPT_MODE_CBC, $iv);
    	$rtn = base64_encode($rtn); 
    	return($rtn); 
    }
    J'ai essayé avec openssl_encrypt en mode aes-256-cbc mais le résultat de cryptage est complètement différent. Il y a forcément quelque chose qui m'échappe et je tourne en rond après de
    multiples essais infructueux. C'est peut-être tout simplement impossible d'obtenir une alternative ?

    Je vous remercie d'avance pour votre réponse et votre aide précieuse.

    NB. : je suis autodidacte non professionnel

    Cordialement
    Pascal

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pourquoi vouloir l'équivalence alors que l'algorithme initial est déprécié pour des raisons de sécurité ?
    La dépréciation n'aurait plus aucun sens dans ce cas de figure précis. Heureusement que tu ne tombes pas sur un résultat équivalent.

    Dis plutôt ce que tu souhaites faire.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Merci pour ta réponse.

    PHP et la fuite effrénée en avant ... que de temps perdu pour la productivité à réécrire des lignes qui fonctionnaient bien depuis plusieurs années.
    Cela me fait perdre du temps dans le développement de mon logiciel sous visual studio ou la tout dépend de moi.

    Je dois crypter et décrypter une chaîne de caractères en symétrique qu'importe le poids en 128 ou 256 (en AES pourquoi pas ? ou autre).

    Le code doit pouvoir être écrit dans microsoft visual studio en cryptage et décryptage ET en cryptage dans PHP avec évidemment le même résultat.

    J'ai essayé la fonction openssl_encrypt et openssl_decryt qui me donne un résultat ( à mon humble avis) suffisant pour l'utilisation que je vais en faire.
    Mais comment faire maintenant en visual studio : je ne trouve pas d'équivalence ou tout simplement humblement je ne sais pas quelle est l'équivalence.
    D'ici, que dans deux ans, on déprécie openssl pour des raisons de sécurité ... pfff !!!

    Si je trouve une solution bivalente, il faudra que "je remette les mains dans le cambouis" pour tout réadapter.

    Mon site internet est en mutualisé, je n'utilise pas de CMS, je fais tout moi-même et je ne peux pas intervenir au niveau de la configuration de PHP.

    J'ai téléchargé la class phpseclib qui est une alternative mais c'est relativement complexe et il faut que j'intervienne dans les lignes pour simplifier et enlever tout ce qui ne me servira pas (alléger le code et surtout le maîtriser car il est long).

    Pascal

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    je ne connais pas .net mais j'ai trouvé dans la doc System.Security.Cryptography qui devrait te fournir l'équivalent aux fonctions openssl_ de PHP

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Re,

    C'est System.Security.Cryptography que j'utilise avec le mode RijndaelManaged mais je ne connais pas l'équivalent entre VB .net et openssl.
    Avec RijndaelManaged, il y avait une correspondance parfaite et presque trop simple.

    Openssl n'est pas implémenté de base en VB .Net et je ne veux pas utiliser une dll propriétaire et certainement payante.
    En Vb .net je n'ai pas trouvé de codage en AES 128 ou 256 dans la documentation MSDN.

    Malheureusement, je suis autodidacte (j'apprends tous les jours) mais la je cale lamentablement sauf à essayer des mois toutes les combinaisons possibles pour arriver
    à trouver une solution qui fonctionne en VB .net ET en PHP

    Merci à tous pour votre intérêt et votre aide

    Pascal

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tiens peut-être un début de soluce : stackoverflow

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Re,

    Merci beaucoup pour le lien que j'avais vu sans y apporter plus d'attention car je voulais absolument trouver une alternative simple à la disparition de mcrypt_encrypt pour éviter de tout réécrire.

    Je vais m'y pencher sérieusement dans quelques jours car mon site est encore en PHP 7.0 et j'ai encore un peu de temps avant de passer en 7.3

  8. #8
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2012
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 38
    Points : 29
    Points
    29
    Par défaut
    Bonjour à tous sur ce forum,

    J'ai enfin après plusieurs recherches (je ne compte pas le temps), à trouver un lien qui donne entièrement
    satisfaction à la fois sur PHP et sur VB .net.

    Le lien donne une solution facilement transposable en vb .net pour l'essai.
    Il est parfait et répond complètement à mes attentes.

    Je vous remercie pour votre aide précieuse et je donne le lien qui fonctionne bien :
    https://odan.github.io/2017/08/10/ae...nd-csharp.html

    Même si le titre est Php and csharp, le code est facilement transposable en Vb .net pour la partie en C.

    Pascal

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Comment appeller une fonction stockée en MS SQLServer depuis PHP ?
    Par momoG dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/12/2008, 16h11
  2. Réponses: 9
    Dernier message: 13/03/2006, 17h45
  3. lancer un .reg depuis php
    Par tikaprod dans le forum Langage
    Réponses: 14
    Dernier message: 17/02/2006, 11h02
  4. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 11h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo