Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/09/2011, 04h05   #1
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
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 :
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 :
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
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 08h05   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 551
Points : 2 551
Envoyer un message via Skype™ à rawsrc
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
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 16h30   #3
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
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 :
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?
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 16h44   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 126
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 126
Points : 8 486
Points : 8 486
non y'a pas de clé, donc un decode suffit, c'est uniquement pour que ton crypte soit formatté dans une url
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 18h09   #5
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
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
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 18h50   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 126
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 126
Points : 8 486
Points : 8 486
mais c'est le but du base64, donc crypte + base64
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2011, 19h05   #7
Membre habitué
 
Inscription : décembre 2007
Messages : 392
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2007
Messages : 392
Points : 118
Points : 118
Effectivement merci, je cherchais un 2 en 1 comme pour les shampoings. Merci
voyageurdumonde est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h20.


 
 
 
 
Partenaires

Hébergement Web