[PHP] Cryptage

Cryptage [PHP] - Programmation

Marsh Posté le 30-11-2001 à 23:37:25    

Salut !
 
Je souhaiterais savoir s'il y a une fonction qui crypte les données.
 
C'est pour un espace membre, donc il me faudra le résultat inverse, c'est a dire a partir du mot crypté, il faudra le décrypter ;)
 
Merci.

Reply

Marsh Posté le 30-11-2001 à 23:37:25   

Reply

Marsh Posté le 30-11-2001 à 23:42:40    

y a les fonctions mcrypt (cf la doc)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 01-12-2001 à 02:38:14    

utilise md5($password)
tu le stockes dans ta bd en crypté et tu le cryptes qd tu le reçois lors d'un post avant de le comparer
(il y a pas de fct inverse)

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 02:42:38    

md5 on peut pas le decrypter, dans le cas de recuperer son mot de passe donc c pas possible

 

[edtdd]--Message édité par speedyop--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 02:44:52    

c'est bien ce que je dis ;)
mais c pas spécialement nécessaire ...
BD --> md5($pwd)
POST --> md5($pwd_posté) =?= BD.pwd

Reply

Marsh Posté le 01-12-2001 à 02:47:41    

pour des users neuneuh y'a souvent "mot de passe oublier?, on vous l'envoye pas email".

Reply

Marsh Posté le 01-12-2001 à 02:49:32    

:lol:
tu génères un autre pwd et tu lui refiles par email, à lui de le changer :D
 
c'est un point de vue comme un autre...

Reply

Marsh Posté le 01-12-2001 à 02:54:47    

chuis presque sur qu'ici sur le forum HFR y'a pas de cryptage ;)

Reply

Marsh Posté le 01-12-2001 à 02:58:52    

hé hé tu as une âme de pirate :D
 
m'étonnerait pas non plus, mais j'ai pas encore regardé le cookie qu'ils nous filent ;)
 
--correction--
si si ils cryptent le pwd dans le cookie

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 03:09:50    

bah en tout cas pas en md5... et pis me rappelle que sur gamekult on a le meme compte qu'ici...pourtant c pas le meme forum :D

Reply

Marsh Posté le 01-12-2001 à 03:09:50   

Reply

Marsh Posté le 01-12-2001 à 04:00:12    

et pq pas en md5() ?
 
quelle est la différence entre le cryptage md5 et mcrypt que propose Sh@rdar ? je veux dire par là (pour ne pas rentrer dans des détails surement incompréhensible), y en a-t-il une meilleure qu'une autre ?
 
je suppose qd même que si mcrypt() est réversible, ça doit prendre moins de temps à cracker non ? m'étonnerait qu'on aie des clés public/privées dispo en php...

Reply

Marsh Posté le 01-12-2001 à 06:18:07    

Le must reste un cryptage type md5, cela permet d'être sûr que le mdp ne soit pas décryptable.
La réversabilité n'est pas nécéssaire, tu crypte au vol le mdp entré et tu compare les deux mdp crypté...


---------------
A+++ Bruce - http://www.bheller.com
Reply

Marsh Posté le 01-12-2001 à 10:18:25    

Je vais opter pour la solution à ethernal, c'est a dire générer un nouveau pass s'il y a une demande ! :)
Donc, je me tourne vers md5().

Reply

Marsh Posté le 01-12-2001 à 11:20:05    

Bon, j'arrive a crypter le pass lorsque la personne s'inscrit.
Mais lorsque je veux me logger, je n'y arrive pas.
 
J'utilise cette requete :
 
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = md5('$pass';)" );
 
Est-ce exact ?

Reply

Marsh Posté le 01-12-2001 à 13:18:37    

Bruce a écrit a écrit :

Le must reste un cryptage type md5, cela permet d'être sûr que le mdp ne soit pas décryptable.
La réversabilité n'est pas nécéssaire, tu crypte au vol le mdp entré et tu compare les deux mdp crypté...  




 
Pas décryptable, c'est vite dit !
il suffit de tous les essayer pour trouver le bon !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 01-12-2001 à 13:45:36    

kyle a écrit a écrit :

Bon, j'arrive a crypter le pass lorsque la personne s'inscrit.
Mais lorsque je veux me logger, je n'y arrive pas.
 
J'utilise cette requete :
 
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = md5('$pass';)" );
 
Est-ce exact ?  




 
tu dois le crypter en dehors de la requête pcq la fct n'est pas exécutée dans "...";
$cyptedPwd= md5($pwd);
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = $cryptedPwd" );
 
Dans myslq il existe la fonction Password('chaine à crypter';) et dans ce cas, tu peux la mettre dans la requête directement puisque mysql va la reconnaitre.  Mais je ne sais pas si elle correspond tout à fait à la fonction md5()
 
Mara's dad>oui ok, mais tu conviendras qu'un brute force est bcp plus lent, que d'appliquer une fonction de décryptage... ;)
sur une chaine de 8 caractères tu es parti pour qq années déjà en brute force...

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 13:45:45    

Mara's dad a écrit a écrit :

 
 
Pas décryptable, c'est vite dit !
il suffit de tous les essayer pour trouver le bon !  




 
:sarcastic:  Si c'est la seule solution, on dit qu'il n'y a pas de décryptage.

Reply

Marsh Posté le 01-12-2001 à 14:04:49    

Ha bon ?
 
Pourtant, à partir d'un dico de mots de passe, en général on trouve assez vite !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 01-12-2001 à 14:07:52    

speedyop a écrit a écrit :

chuis presque sur qu'ici sur le forum HFR y'a pas de cryptage ;)  




 
les passwords ne sont pas cryptés ds la base de données du forum ...

Reply

Marsh Posté le 01-12-2001 à 14:10:14    

Ben c'est normal, c'est l'accés à la base qu'est protégé, faut pas être parano !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 01-12-2001 à 14:20:07    

Mara's dad a écrit a écrit :

Ha bon ?
 
Pourtant, à partir d'un dico de mots de passe, en général on trouve assez vite !  




 
si le mot de passe est mal choisis, mais si je te mete un mot de passe de 30 caractères, tapés au hasard par mon chat marchant sur le clavier, la terre n'xistera plus d'ici a ce que tu le trouves.

Reply

Marsh Posté le 01-12-2001 à 14:31:36    

pour le cryptage je te conseille meme de faire mieux :
MD5 ( pass.login ..
 
ca rend qqch de plus sur encore que le pass seul !
( face a des pirates par ex ! )

Reply

Marsh Posté le 01-12-2001 à 14:34:24    

par contre, ce que je pige pas c'est l'option prise par ce forum.
 
Le mot de passe est crypté dans le cookie, mais pas dans les formulaires, donc c'est un cryptage réversible, et en plus il suffit de copier le cookie pour l'utiliser ailleurs.

Reply

Marsh Posté le 01-12-2001 à 14:57:10    

jolly a écrit a écrit :

pour le cryptage je te conseille meme de faire mieux :
MD5 ( pass.login ..
 
ca rend qqch de plus sur encore que le pass seul !
( face a des pirates par ex ! )  




 
MD5 ( pass.login ..  :??:  
tu peux expliquer stp ? je ne vois pas ce que tu veux dire  :(
 

gizmo a écrit a écrit :

par contre, ce que je pige pas c'est l'option prise par ce forum.  
 
Le mot de passe est crypté dans le cookie, mais pas dans les formulaires, donc c'est un cryptage réversible, et en plus il suffit de copier le cookie pour l'utiliser ailleurs.




 
bha c'est comme dans tout les forums le pwd dans le coockie... tu as pas vraiment le choix pour ne pas demander l'autentification à chaque connexion.  Par contre c'est vrai que le décryptage dans les formulaire, je ne vois pas trop l'intérêt...

 

[edtdd]--Message édité par ethernal--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 15:01:39    

ethernal a écrit a écrit :

 
 
bha c'est comme dans tout les forums le pwd dans le coockie... tu as pas vraiment le choix pour ne pas demander l'autentification à chaque connexion.  Par contre c'est vrai que le décryptage dans les formulaire, je ne vois pas trop l'intérêt...  
 
 




 
pour le md5, il le fait sur l'ensemble login pas, comme ca, c'est un mot plus grand.
 
Sinon, pour les cookies, ca je sais, je le fait aussi, mais pourquoi le crypter...

Reply

Marsh Posté le 01-12-2001 à 15:01:45    

ethernal a écrit a écrit :

 
...  




 
 :hello:


---------------
If fate doesn't make you laugh, then you don't get the joke
Reply

Marsh Posté le 01-12-2001 à 15:09:06    

pour le cryptage des cookies, c independant du forum, c'est windows ...

Reply

Marsh Posté le 01-12-2001 à 15:16:33    

gizmo a écrit a écrit :

 
 
pour le md5, il le fait sur l'ensemble login pas, comme ca, c'est un mot plus grand.
 
Sinon, pour les cookies, ca je sais, je le fait aussi, mais pourquoi le crypter...  




 
pq le crypter ? pour éviter qu'un petit malin qui sniff le réseau ne choppe ton pwd ;)
au pire il le chope en crypté et s'il fait >8 carcatères et n'est pas un mot du dico, il mettra >2 ans à le trouver en cherchant 24h/24...
 
Zeplusoif> :hello: comment va ??    
 
skylight> windows crypte les coockies ?? hum c'est des fichiers textes tout à fait lisibles avec un notepad...

Reply

Marsh Posté le 01-12-2001 à 15:16:47    

euh... pas sur, moi les cookies de mon forum ne sont pas cryptés.

Reply

Marsh Posté le 01-12-2001 à 15:23:49    

c lisible .. mais pas comprehensible ... tootes les cookies de mon pc sont cryptés ... donk j'me suis dit ..

Reply

Marsh Posté le 01-12-2001 à 15:27:07    

ben si c'est compréhensible, tu as le nom de la variable, sa valeur, l'origine, la durée de vie, bref, les info importantes sont en clair.

Reply

Marsh Posté le 01-12-2001 à 22:50:00    

ethernal a écrit a écrit :

 
 
tu dois le crypter en dehors de la requête pcq la fct n'est pas exécutée dans "...";
$cyptedPwd= md5($pwd);
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = $cryptedPwd" );
 
Dans myslq il existe la fonction Password('chaine à crypter';) et dans ce cas, tu peux la mettre dans la requête directement puisque mysql va la reconnaitre.  Mais je ne sais pas si elle correspond tout à fait à la fonction md5()
 
Mara's dad>oui ok, mais tu conviendras qu'un brute force est bcp plus lent, que d'appliquer une fonction de décryptage... ;)
sur une chaine de 8 caractères tu es parti pour qq années déjà en brute force...  
 
 




 
J'ai un autre probleme !
 
J'ai fais un echo de ma requete juste apres pour debugger et il me marque "Resource id #3"
 
Ca correspond a quoi ?

Reply

Marsh Posté le 01-12-2001 à 22:54:24    

que la requete a utilisé la ressource 3 pour s'effectuer.

Reply

Marsh Posté le 01-12-2001 à 22:55:27    

ok, mais du coups ma requete ne fonctionne pas, donc, on peut pas se logger :(

Reply

Marsh Posté le 01-12-2001 à 22:57:15    

quoi, tu fais echo $req c'est ca? si oui, c'est normal! tu dois etraire les données de $req pour les exploiter.

Reply

Marsh Posté le 01-12-2001 à 22:58:39    

en fait, j'ai fais un echo $req afin de debbuger car ca ne marchais pas !
 
Voila ce que j'ai écrit :
 
$cryptedPwd= md5($pass);
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = '$cryptedPwd'" );
echo "$req";

Reply

Marsh Posté le 01-12-2001 à 23:00:40    

normal!
 
$cryptedPwd= md5($pass);
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = '$cryptedPwd'" );
$val=mysql_fetch_array($req);
echo "$val[nom_du_champ_a_voir]";

Reply

Marsh Posté le 01-12-2001 à 23:06:30    

Bon, je sais pas si c'est moi qui est mal compris mais je réexplique.
 
Avec md5 je sais crypté un pass d'un membre lorsqu'il s'enregistre.
 
Moi je galere lors de l'identification, lorsque le membre veux se logger.
 
Voici le script de logg :
 
if(isset($submit)){
$cryptedPwd= md5($pass);
$req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = '$cryptedPwd'" );
$result = mysql_fetch_array($req);
if($surnom != $result[surnom] || $cryptedPwd != $result[pass]) {
$non = "Vous n'etes pas loggé !";
} else {
$email_session = $result[email];
session_start();
session_register("surnom" );
session_register("email_session" );
$oui = "Vous etes bien loggé !";
}
}
 
Et donc, ca ne marche pas .. :(

 

[edtdd]--Message édité par kyle--[/edtdd]

Reply

Marsh Posté le 01-12-2001 à 23:17:11    

On va faire plus simple:
 
original:
 

Code :
  1. if(isset($submit)){
  2. $cryptedPwd= md5($pass);
  3. $req = mysql_query("select * from $table_membre where surnom = '$surnom' and pass = '$cryptedPwd'" );
  4. $result = mysql_fetch_array($req);
  5. if($surnom != $result[surnom] || $cryptedPwd != $result[pass]) {
  6. $non = "Vous n'etes pas loggé !";
  7. } else {
  8. $email_session = $result[email];
  9. session_start();
  10. session_register("surnom" );
  11. session_register("email_session" );
  12. $oui = "Vous etes bien loggé !";
  13. }
  14. }


 
modifié:
original:
 

Code :
  1. $cryptedPwd= md5($pass);
  2. $req = mysql_query("select email from $table_membre where surnom = '$surnom' and pass = '$cryptedPwd'" );
  3. if(!mysql_num_rows($req))
  4. {
  5.   echo "Vous n'etes pas loggé !";
  6. }
  7. else
  8. {
  9.   session_start();
  10.   session_register("surnom" );
  11.   session_register("result[email]" );
  12.   echo "Vous etes bien loggé !";
  13. }

Reply

Marsh Posté le 01-12-2001 à 23:18:57    

fait d'abord la selection du password correspondant a l'user
 
$query="select password from matable where pseudo='".$pseudo."'";
if ($result=mysql_query($query))
{
if (mysql_num_rows($result)>0)
 {
 $user=mysql_fetch_array($result);  
//la tu fait la comparaison
 if ($user[$password]==md5(password))  
  {
  //la c ok  
  }      
 else
  {
  //la le password est mauvais
  // tu peut meme mettre un compteur pour compter le nombre de tentative infructueuse  et bloquer le compte au bout de trop
  }
 }
else
 {
 echo "aucun compte a ce nom";
 }
}
else
{
echo "erreur technique";
}

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed