Cryptage [PHP] - Programmation
Marsh Posté le 30-11-2001 à 23:42:40
y a les fonctions mcrypt (cf la doc)
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]
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]
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
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".
Marsh Posté le 01-12-2001 à 02:49:32
tu génères un autre pwd et tu lui refiles par email, à lui de le changer
c'est un point de vue comme un autre...
Marsh Posté le 01-12-2001 à 02:54:47
chuis presque sur qu'ici sur le forum HFR y'a pas de cryptage
Marsh Posté le 01-12-2001 à 02:58:52
hé hé tu as une âme de pirate
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]
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
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...
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é...
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().
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 ?
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 !
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]
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 ! |
Si c'est la seule solution, on dit qu'il n'y a pas de décryptage.
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 !
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 ...
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 !
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.
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 ! )
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.
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]
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...
Marsh Posté le 01-12-2001 à 15:01:45
ethernal a écrit a écrit : ... |
Marsh Posté le 01-12-2001 à 15:09:06
pour le cryptage des cookies, c independant du forum, c'est windows ...
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> comment va ??
skylight> windows crypte les coockies ?? hum c'est des fichiers textes tout à fait lisibles avec un notepad...
Marsh Posté le 01-12-2001 à 15:16:47
euh... pas sur, moi les cookies de mon forum ne sont pas cryptés.
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 ..
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.
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 ?
Marsh Posté le 01-12-2001 à 22:54:24
que la requete a utilisé la ressource 3 pour s'effectuer.
Marsh Posté le 01-12-2001 à 22:55:27
ok, mais du coups ma requete ne fonctionne pas, donc, on peut pas se logger
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.
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";
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]";
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]
Marsh Posté le 01-12-2001 à 23:17:11
On va faire plus simple:
original:
Code :
|
modifié:
original:
Code :
|
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";
}
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.