Mot de passe hash MD5

markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   -  
markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je voudrais savoir s'il est possible de se connecter (login, mot de passe) si le mot de passe dans la BDD est "hashé" MD5?
Si oui comment procéder?

Merci



A voir également:

3 réponses

Utilisateur anonyme
 
Salut salut,

Oui oui tu peux, normaement tes mot de passe sont cryptés en bdd, lors de l'authentification ce que tu fais c'est que tu récupères le mot de passe crypté , tu crypte en md5 le mot de passe que l'utilisateur t'envoie et tu compares les cryptages, s'ils sont égaux => c'est bon !
0
markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   5
 
J'ai du mal à me connecter, mon code:


<?php 
   // On démarre la session
	session_start();
	
	$login = mysql_real_escape_string($_POST['login']);
	$pass =  mysql_real_escape_string(md5($_POST['pass']));
	
	$loginOK = false;  // cf Astuce
	
	// On n'effectue les traitements qu'à la condition que les informations aient été effectivement postées
	if ( isset($_POST) && (!empty($login)) && (!empty($pass)) ) {
	
		extract($_POST);  
		
		if ((isset($_SESSION['pseudo'])) && (($_SESSION['pseudo'])== $login)){?>
			<script language = "JavaScript">; 
                       alert('Vous etes deja connecte, redirection vers la page...'); 
                       document.location.href="index.php";
            </script>
		<?php }
		else{
			
			// On va chercher le mot de passe afférent à ce login
			$sql = ('SELECT * FROM membre WHERE pseudo="'.$login.'"AND password="'.$pass.'" AND activer=1'); 
			$req = mysql_query($sql) or die('Erreur parametres de connexion : <br /><h1>'.mysql_error().'</h1>');
			$dataNum = mysql_num_rows($req);
				
			// On vérifie que l'utilisateur existe bien
			if ($dataNum > 0) {
				$data = mysql_fetch_assoc($req);

				// On vérifie que son mot de passe est correct
			   if ($pass == $data['password']) {
					 $loginOK = true;
 					
					  if(!isset($erreur)){
						  // Si le login, toutes les autres donnees sont ont été validé on met les données en sessions
							$_SESSION['nom'] = $data['nom'];
							$_SESSION['prenom'] = $data['prenom'];
							$_SESSION['pseudo'] = $data['pseudo'];
						 }
						?>
						<script language = "JavaScript">; 
							alert('Vous etes maintenant connectes'); 
							document.location.href = 'index.php';
						 </script> 
					   <?php  
				 }
			}
		 
		       else{?>
				 <script language = "JavaScript">;alert('Vos parametres de connexion sont incorrects ou le pseudo est en cours d\'utilisation'); 
                  document.location.href = 'connexion-membre.php';
                </script>
                <?php }
		}    
	}
?>
0
Utilisateur anonyme
 
Dans ta requête en base :
'SELECT * FROM membre WHERE pseudo="'.$login.'"AND password="'.$pass.'" AND activer=1'

Si tes mots de passe en base sont en md5 il faut comparer le ctyptage :
'SELECT * FROM membre WHERE pseudo="'.$login.'"AND password="'.md5($pass).'" AND activer=1'

0
Angelneonizz Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   137
 
bonjour,
$pass est déja crypté en md5 à la ligne 5
0
Utilisateur anonyme
 
Ah c'est vrai javais pas vu...
Je comprends pas tout au fonctionnement du script, parce que son extract($_POST) va écraser la variable $pass déclarer ligne 5
0
Angelneonizz Messages postés 788 Date d'inscription   Statut Membre Dernière intervention   137
 
effectivement, je ne connaissais pas cette fonction qui est très pratique.

Du coup il suffit de virer cette ligne et ça devrait marcher !
0
Utilisateur anonyme
 
Y a des chances, il reste plus que la personne concernée nous dise ce qu'il en est ;)
0
markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   5
 
kyser soze tu as raison, effectivement le risque de collision avec des variables existantes , modification ou non et de ne pas maîtriser les variables est grande.
Son utilisation n'est pas très efficace ici.

Mais même supprimer ne règle pas mon problème.
J'ai testé pour un mot de passe non crypté, il n'y a pas de souci avec code.
0
Tatanos Messages postés 966 Date d'inscription   Statut Membre Dernière intervention   156
 
Bonjour,

Tu peux enlever ta ligne 33 je pense

if ($pass == $data['password']) {

La valeur sera forcément égale puisque tu as une clause AND password="'.$pass.'" dans ta requête.
0
markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   5
 
C'était juste par précaution. Mais ça ne résout pas le problème
0
Tatanos Messages postés 966 Date d'inscription   Statut Membre Dernière intervention   156
 
Tu tombes sur quelle erreur ? Ca te dis que "Vos parametres de connexion sont incorrects ou le pseudo est en cours d\'utilisation" ? (t'es dans le ELSE ?)
0
markaz Messages postés 331 Date d'inscription   Statut Membre Dernière intervention   5
 
Oui : "Vos parametres de connexion sont incorrects ou le pseudo est en cours d\'utilisation"
0