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 :

mcrypt_encrypt et Passage par URL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut mcrypt_encrypt et Passage par URL
    Bonjour,

    J'utilise la fonction suivante pour encrypter des informations que je vais faire passer par URL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $key = 'password to (en/de)crypt';
    $string = ' string to be encrypted '; 
     
    $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $string, MCRYPT_MODE_CBC, md5(md5($key))));
    $decrypted = rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($encrypted), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
     
    http://www.xxxxe.com/confirmaservation.php?codesecu='.$encrypted.'&courriel=cdcd.sdsdds@gmail.com
     
    ?>
    J'obtiens un resutat suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://www.xxxxe.com/confirmaservation.php?codesecu=4nhLNGjvxp5pfd1rWzSPZE/J2NDxA/gKeU2Yd7fnRI=&courriel=cdcd.sdsdds@gmail.com
    Je voudrais savoir si je suis sur de ne jamais avoir de caracteres speciaux ou le signe & dans le resultat de $decrypted car cela poserait un probleme pour recuperer les valeurs avec l'url.

    Merci de votre reponse

  2. #2
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Salut,
    base64_encode n'est pas utilisable en l'état dans une URL car cette fontion peut renvoyer des + = /
    Il faut les remplacer au codage par des caractères inoffensifs et faire l'inverse avant le décodage
    Tu trouvers ton bonheur ici
    Autre option:
    Réencoder ta chaine base64 avec urlencode ou rawurlencode
    Autre option:
    Encoder directement ta chaine cryptée avec urlencode ou rawurlencode

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    Salut,

    Merci mais je n'ai peut etre pas compris comment fonctionne base64_encode mais est-il possible de mettre une clef d'encodage?

    dans l'exemple donne par le site

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $str = 'Ceci est une chaîne encodée';
    echo base64_encode($str);
    ?>
    si une personne veut connaitre le contenu de Q2VjaSBlc3QgdW5lIGNoYe5uZSBlbmNvZOll elle doit pouvoir facidlement pouvoir le faire avec base64_decode()

    Non?

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    non y'a pas de clé, donc un decode suffit, c'est uniquement pour que ton crypte soit formatté dans une url

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    478
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 478
    Par défaut
    C'est ca le probleme c,est pourquoi j'avais utilise base64_encode. Je ne veux pas que l'utilisateur puisse decripter l'information sans une clef.

    Existe t-il une fonction equivalente a base64_encode utilisable dans une URL?

    Merci

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    mais c'est le but du base64, donc crypte + base64

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

Discussions similaires

  1. [1.x] [Sécurité] Privilégier un passage par URL ou FORM ?
    Par duke666 dans le forum Symfony
    Réponses: 1
    Dernier message: 11/06/2012, 18h58
  2. Passage par URL
    Par yahya6 dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 16/04/2012, 13h40
  3. Passage par url dans une fenêtre Popup
    Par dekalima dans le forum Langage
    Réponses: 1
    Dernier message: 25/01/2011, 16h08
  4. [Array/Tableaux] Passage par URL
    Par Sayrus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/05/2007, 22h13
  5. passage valeur select par URL
    Par toome dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/08/2005, 11h51

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