Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1428 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme de cryptage d'une variable...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de cryptage d'une variable...

n°991212
bob la loo​se
Posté le 23-02-2005 à 14:13:37  profilanswer
 

salut les jeunes!
 
j'ai une question a la con.
 
je situe le sujet:
 
j'ai un site web en php qui interroge une base MySQL.
 
je veux creer une variable qui recupere le mot de passe d'un user mysql.
 
petit probleme, les mots de passe Mysql sont cryptés en utilisant une fonction qui s'appelle 'PASSWORD'.
 
donc il faut que je crypte ma variable avant de l'envoyer au serveur.
 
je sais qu'il existe une fonction PHP qui permet de crypter une chaine de caractere en md5, et donc je me demandais si il existe une fonction qui permet de coder une chaine en respectant les principe de la fonction PASSWORD de Mysql.
 
Si quelqu'un avait une reponse ca m'aiderait pas mal. Si en plus elle etait positive ca m'aiderait bien. Si en plus quelqu'un avait le nom de la fonction ca me sauverait la vie.
 
Merci d'avance!

mood
Publicité
Posté le 23-02-2005 à 14:13:37  profilanswer
 

n°991222
dwogsi
Défaillance cérébrale...
Posté le 23-02-2005 à 14:21:40  profilanswer
 

et ca marcherai pas avec AES_DECRYPT() en sql?

n°991225
latruffe
Bdovore
Posté le 23-02-2005 à 14:22:40  profilanswer
 

Normalement, la fonction password() ne doit être utilisée que pour le suivi des comptes MySQL et non pas pour des developpements persos.
 
Pour ces derniers, c'est normalement sha1() ou md5().


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
n°991453
cerel
Posté le 23-02-2005 à 16:25:58  profilanswer
 

[mode geek]
Je voudrais que l'on observe une minute de silence pour sha1 qui vient de tomber recemment...
[/mode geek]
 
Si tu veux "comparer" deux passwords, tu n'as pas besoin de l'equivalent php de la fonction PASSWORD de mysql, suffit de l'utiliser dans ta requete.
Par exemple :

Code :
  1. $qry='SELECT * FROM users WHERE username="'.$user.'" AND password=PASSWORD("'.$pass.'" )';
  2. // ...


 
Petite remarque concernant l'utilisation de md5. Cette fonction ainsi que sha1() n'est pas faite pour crypter des mots de passe. A la base ces fonctions sont des fonctions de hashage. Or une fonction de hashage est a "sens unique". En effet elle ne permet pas de "decodage". Cela implique quelque chose d'important. Il peut exister deux "passwords" qui ont la meme cle de hashage. Certes le % est faible, mais la possibilite existe.  
 
[petit hs]

Pour la petite histoire, sachez que l'algo sha1 vient de "tomber" il y a quelques jours, en effet grace a un algo, il est desormais possible de trouver un autre contenu qui donne le meme sha1 qu'un autre. C'etait deja possible avant, mais le precedent algo avait besoin de 2^64 essais pour y arriver (plusieurs semaines de calculs). Or le nouveau algo y arrive en 2^59 (c'est de l'ordre de quelques heures (~60 aine d'heures) ). Avec la puissance des ordis, dans une a deux annees, le "cassage" de sha1 sera a la portee de tout le monde...

[/petit hs]
 
Si tu veux neanmoins utiliser md5, alors je te recommande l'utilisation d'un "cle". Lors de l'install de ton logiciel tu genere un chaine de char arbitraires. Ensuite, a chaque utilisation de md5, il faudra "ajouter" (ou concactener) cette chaine au password avant de le crypter. De cette facon, on ajoute un facteur "aleatoire" supplementaire.
 
"L'inconvenient" sera que les mots de passe, ou plutot les md5 ainsi generes, ne seront pas "compatibles" d'un site a un autre (a moins d'utiliser la meme cle, chose qu'il faut eviter, elle doit etre aleatoire, sinon elle sert a rien :D).


Message édité par cerel le 23-02-2005 à 16:27:00
n°991562
omega2
Posté le 23-02-2005 à 17:06:50  profilanswer
 

A partir de mysql 4.1, password() ne donera pas toujours le même résultat à partir du même mot de passe.
A partir de là IL NE FAUT PLUS l'utiliser pour gérer les logins à un site web. Ca ne doit plus servir que pour la gestion des utilisateurs de la base de donnée.
 
De plus cette fonction sql est propre à mysql, il serait impossible de changer pour une autre base de donnée sans donner un nouveau mot de passe à tous les utilisateurs.
 
MD5 est certe à sens unique mais elle donne toujours le même résultat à partir de la même chaine de caractére. De plus étant à sens unique, on ne peut pas retrouver le mot de passe initial à partir du résultat. IL est également possible d'utiliser une clé de hashage permettant de réduire grandement les risques de décriptable à base de dictionnaire   de mot de passe. Ca me semble donc plus adapté à la gestion des utilisateurs d'un programme php.

n°991567
bob la loo​se
Posté le 23-02-2005 à 17:08:05  profilanswer
 

ayé!
 
j'ai trouvé!
 
en fait je me posais les mauvaises questions et j'étais a cote de la plaque!
 
en tous cas, merci pour les soluces!
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme de cryptage d'une variable...

 

Sujets relatifs
Problème sémaphore sous SolarisProblème compilation sur Linux
Problème selection base (débutante que je suis, aidez moi!!)Recherche séquentielle qui pose problème
probleme compatibilité vidéo avec ie, demande d'aide. [JavaScript] Probleme effet sur image - demande aide
Problème pour zipperProblème de syntaxe sur une classe
probleme dans requete SQLProblème de formatage de date sous MySQL
Plus de sujets relatifs à : probleme de cryptage d'une variable...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR