Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 23/04/2006, 04h57   #1
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
Par défaut Cryptage mdp dans base de données et identification sur un site

bonjour à tous

voilà dans ma base de données mysql je peux crypter les mots de passe en MD5 ou de type password.
mais quand je veux m'identifier à mon site (pseudo + mdp), et si comme mdp j'ai par exemple "blabla" et qu'il est crypté dans ma bdd, ça me dit que mon mdp est incorrecte.

ya til un moyen de decrypter afin de pouvoir l'utiliser lors de mon identification?

merci beaucoup
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 09h33   #2
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Non, mais tu cryptes le mot de passe entré dans le champ d'identification.
Ensuite tu vas chercher dans la base si un compte correspond à l'identifiant et au mot de passe crypté que le visiteur vient d'entrer.


Puisque deux mots de passe identique cryptés avec md5() donneront toujours le même mot crypté.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 09h42   #3
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Erreur très souvent commise.

Premièrement: Lors de l'inscription, tu donne comme mdp: 'blabla'.

Tu vas devoir le crypter via PHP avant de l'envoyer à la BDD avec la commande:

(A faire activement, bien sûr )

A ce moment, ton mot de passe ne sera PLUS 'blabla' mais une chaine très longue de chiffres et de lettres.

Assure toi que lorsque tu as créé ta table (mettons membre), la table pseudo n'est PAS limité trop bas. Pour stocker cette suite, il te faut au moins 60 caractère (je sais plus exactement, mais ca sera bon avec 60...)

Donc:

Code :
'password' varchar(60) NOT NULL
Ensuite. Le login.

Il est impossible de décrypter un mot de passe en md5 (si tu y arrive bravo!) et si je ne me trompe pas, il n'y a pas de fonction pour la décrypter.

Voici ce qu'il va falloir faire:

On récupère le login (admettons ) et le mot de passe.

On fait:

'blabla' sera le mot de passse rentré lors de l'authentification.

Ensuite, tu confronte avec la BDD en fonction du pseudo ca donne:

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "SELECT pseudo FROM users WHERE pseudo='".$pseudo."' AND pass='".md5($pass)."'";
$req = mysql_query($sql) or die(mysql_error());
$result = mysql_num_rows($req);

if($result)
 {
 echo 'kikoo '.$pseudo.' :D';
 }
?>
Je me suis peut-être trompé quelque part, mais sinon, adapte le pour toi et c'est bon
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 19h14   #4
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
merci pour ta réponse
je ne m'y connais pas du tout au cryptage et j'ai fais ça :
Code :
1
2
3
4
5
6
7
8
 
$mdp = md5($_POST['mdp']);
 
....
 
$requete = "SELECT pseudo, mdp FROM client WHERE pseudo = '".$_POST['pseudo']."' AND mdp = '".md5($mdp)."'";
 $identification = mysql_query($requete);
 $valeur_ident = mysql_fetch_array($identification);
mais ça me dit encore que le mot de passe est incorrecte.
j'ai mis la longueur à 60 pour le mdp dans ma BDD

peux tu me corriger?

merci beaucoup
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 19h24   #5
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
euh...

dans ta requête, tu applique la fonction md5, alors que tu l'as déjà fait dans la première ligne...
Y'en a un de trop

et pour apporter une précision, corrigez moi si je me trompe car je suis pas un pro...

le md5 n'est pas une méthode de cryptage mais de hachage...
un message crypter peut se décrypter grâce à un algorithme inverse alors que le hachage et une méthode irréversible...
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 20h36   #6
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
ok ça marche!!!!!!! :d

je dois avoir mal regardé mais comment mettre un mdp automatiquement en MD5?
parce que quand une personne s'inscrit, son mdp est brut cad que si son mdp est "bloup", dans ma bdd il y a inscrit "bloup"

je dois etre completement à l'ouest mais merci de m'aider...
oceane751 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 20h55   #7
Membre Expert
 
Inscription : juillet 2004
Messages : 1 033
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 1 033
Points : 1 050
Points : 1 050
Tu fais :
Code :
1
2
 
INSERT TO matable (monchamps) VALUES (MD5('password en clair'))
Puis :
Code :
1
2
 
SELECT password FROM matable WHERE password = MD5('password en clair')
ePoX est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 22h05   #8
Membre actif
 
Inscription : mai 2005
Messages : 221
Détails du profil
Informations personnelles :
Âge : 22

Informations forums :
Inscription : mai 2005
Messages : 221
Points : 159
Points : 159
Oups, quelques erreurs

Citation:
Envoyé par ePoX
Tu fais :
Code :
1
2
INSERT INTO matable (monchamps) VALUES (MD5('password en clair'))
Puis :
Code :
1
2
 
SELECT password FROM matable WHERE password = MD5('password en clair')
Voila, c'est bon.

Le premier, c'est pour l'inscription, le second, pour le login.

Attention, on t'as déjà corrigé, mais je le répète:

Tu as fait 2fois la fonction md5.
En quoi c'est pas bon? Simple: tu as déjà crypté ton mot de passe, et tu recois une chaine de caractère. Ensuite, tu re-crypte cette chaine. A moins de faire la même chose pour le login, ca ne marchera pas. Et de toute facon, c'est parfaitement inutile

Si tu n'as pas très bien compris pour la procédure, relis attentivement mon post (le premier).

Sinon, en adaptatant les requètes de ePoX, ca devrait marcher.

Si tu n'y arrive pas, envoie ton code, et on te fait ça rapidement.

Bonne continuation!
kalash_jako est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2006, 22h17   #9
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
regarde aussi le tutoriel suivant si les réponses précédantes n'ont pas répondu à tes questions :
http://matthieu.developpez.com/authentification/
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/04/2006, 00h53   #10
Membre éprouvé
 
Avatar de oceane751
 
Intégrateur Web
Inscription : novembre 2004
Messages : 988
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Intégrateur Web

Informations forums :
Inscription : novembre 2004
Messages : 988
Points : 434
Points : 434
ok c'est super
merci beaucoup !
oceane751 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 10h58.


 
 
 
 
Partenaires

Hébergement Web