[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 :
- $qry='SELECT * FROM users WHERE username="'.$user.'" AND password=PASSWORD("'.$pass.'" )';
- // ...
|
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 ).
Message édité par cerel le 23-02-2005 à 16:27:00