Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 31/05/2011, 16h16   #1
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
Par défaut Cryptage / décryptage

Bonjour,

Je travaille sur un site qui communique avec d'autres sites. Je souhaite crypter certains paramètres qui transitent avec une clé de cryptage.

Je pars du tutoriel suivant qui correspond exactement à ce que je recherche : http://maxime-ohayon.developpez.com/tutoriels/mcrypt/

Le site extérieur connait naturellement la clé de cryptage, le mode aussi utilisé, mais concernant le vecteur, j'ai un doute car nous le calculons chacun de notre côté. Car effectivement, tous les exemples crypte et décrypte dans le même traitement...

Auriez-vous une solution pour pouvoir crypter sur un site, et décrypter sur un autre site ?

D'avance merci.

Vince
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h22   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
suffit de lire la doc
Citation:
Le vecteur d'initialisation est le seul moyen de fournir une initialisation de remplacement aux méthodes d'initialisation. Ce vecteur n'a pas besoin d'être particulièrement secret, même si c'est mieux. Vous pouvez l'envoyer avec vos documents chiffrés sans perdre en sécurité.
de tout façon t'es pas obligé d'utiliser mcrypt_create_iv popur créer un iv
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h39   #3
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
ok alors comment créé le iv ?
car si je le remplace par null ou 0, j'ai une erreur PHP.
ensuite, il me faut quelque chose de facile à publier à mes clients pour qu'il l'intègre sur leur site .
Merci.
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h41   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
tu mets ce que tu veux, genre les 8 premiers caractères du md5 du password (8 = $iv_taille)

Code :
$iv = substr(md5($cle), $iv_taille);
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 16h48   #5
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
ok je pense comprendre.
pour info, ce n'est pas un mot de passe que je souhaite crypter, mais l'important n'est pas là.
je pense essayer de faire générer le iv par le client, et me le transmettre en paramètre.
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 17h07   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par vince29 Voir le message
ok je pense comprendre.
pour info, ce n'est pas un mot de passe que je souhaite crypter, mais l'important n'est pas là.
je pense essayer de faire générer le iv par le client, et me le transmettre en paramètre.
si les 2 cotés on le mot de passe, l'iv seras le meme des 2 coté avec ce que je t'ai mis
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 17h15   #7
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
ok, j'ai compris et ça fonctionne. j'utilise une variable identique de chaque côté pour la partie iv.

le décryptage fonctionne, sauf que j'obtiens l'erreur suivante :


Warning: mcrypt_encrypt() [function.mcrypt-encrypt]: The IV parameter must be as long as the blocksize

je ne comprends pas trop l'erreur...
une idée?
vince29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 17h19   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
bizarre, comme ça moi ça dit rien :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
$cle = 'test';
 
$cle_taille = mcrypt_module_get_algo_key_size(MCRYPT_3DES);
$iv_taille = mcrypt_get_iv_size(MCRYPT_3DES, MCRYPT_MODE_NOFB);
$iv = mcrypt_create_iv($iv_taille, MCRYPT_RAND);
$cle ="Ceci est une clé censé crypter un message mais à mon avis elle est beaucoup trop longue";
$cle = substr($cle, 0, $cle_taille);
 
$message = "Voici mon super message que je dois crypter";
$message_crypte = mcrypt_encrypt(MCRYPT_3DES, $cle, $message, MCRYPT_MODE_NOFB, $iv);
$message_decrypte = mcrypt_decrypt(MCRYPT_3DES, $cle, $message_crypte, MCRYPT_MODE_NOFB, $iv);
 
echo "Message en clair : $message <br/> Message crypté : $message_crypte <br /> Message décrypté : $message_decrypte";

ton $iv_taille est de combien ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 17h44   #9
Membre régulier
 
Homme Vincent Leboulanger
Développeur informatique
Inscription : janvier 2005
Messages : 315
Détails du profil
Informations personnelles :
Nom : Homme Vincent Leboulanger
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2005
Messages : 315
Points : 80
Points : 80
en fait, je ne calcule plus le iv_taille.

je fais de la façon suivante :

Code :
$message_crypte = mcrypt_encrypt(MCRYPT_3DES, $maCle, $donnee, MCRYPT_MODE_NOFB, $autreCle;
$autreCle est une string... qui est connu sur chaque site donc me permet de décrypter correctement la variable $donnee.

Merci
vince29 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 17h46.


 
 
 
 
Partenaires

Hébergement Web