Comment mysql crypt ses passwords ?

Résolu/Fermé
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 - 31 janv. 2010 à 15:13
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 - 31 janv. 2010 à 18:08
Bonjour,

Je vais essayer de faire le plus bref possible

j'aimerais interargir avec ma table user de ma database mysql dans le cadre de la connection d'un utilisateur sur mon site. En gros ces utilisateurs sont confondu avec cette table users.

Ainsi lorsqu'une personne entre ses identifiants je dois verifier si son password match avec le passe crypte ou hashe qui se trouve en base. Le probleme est que je ne sais pas comment mysql gere cela.

Quelqu'un aurait il la réponse ?

Merci beaucoup !
A voir également:

5 réponses

je ne pense pas que c'est mysql qui gere ça, lui se contente de gerer ta base de donnée et d'interagir avec php. le cryptage se fait en php avant d'etre enregistré dans ta table. et par la suite a chaque fois que quelqu'un essaye de se connecter tu crypte le mot de passe saisie et tu le compare a celui deja enregistré dans la table;
la fonction php qui permet cela est crypt ou md5 qui moi je prefere;
un exemple de script:

<?php
if(empty($_REQUEST['login']) || empty($_REQUEST['pass'])){
  header("Location: index.php?incorrect=1");
  exit;
 }
include("variables.inc.php");


$connect = mysql_connect($bddserver,$bddlogin,$bddpassword) or die("Echec connexion serveur de base: ".$bddserver);
mysql_select_db($bdd) or die("Echec connexion base de donnee: ".$bdd);

$pass = md5($_REQUEST['pass']);

$sql = "SELECT `ID`  FROM `$table_user` WHERE `LOGIN`='".$_REQUEST['login']."'
                AND `PASS`='".$pass."';";
$resultat = mysql_query($sql);
$util = mysql_fetch_array($resultat);
$ok = $util['ID'];
if($ok == null){
  header("Location: index.php?incorrect=1");
 }

else{
   session_start();
   $_SESSION['utilisateur'] = $util['ID'];
   header("Location: acceuil.php");
 }
?>

0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
31 janv. 2010 à 17:07
Crypte toi-même le mot de passe en md5 lorsque tu enregistres le membre.
Ensuite, quand tu compares, il suffit de regarder si le mot de passe dans la table corresponds au md5() de celui entré dans le formulaire.
Et forcément tu ne dois plus demander à MySQL de crypter la chaine.
0
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182
31 janv. 2010 à 17:08
Merci de ta réponse.

Cependant le password se trouvant en base dans la table user n'est ni du md5, ni (apparement) généré par crypt().

0
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
31 janv. 2010 à 17:10
Il ne faut pas que tu cryptes ton mot de passe avec MySQL !
Tu cryptes la chaine contenu le mot de passe avec la fonction md5() ou crypt() lorsque tu enregistres le membre, et tu dois désactiver le cryptage de MySQL. Ensuite, il te suffit de comparer le md5/crypt du $_POST avec la chaine (déjà hashée en md5/crypt) dans la table.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Fricky42 Messages postés 466 Date d'inscription lundi 15 septembre 2008 Statut Membre Dernière intervention 27 mars 2012 182
31 janv. 2010 à 18:08
Salut Avion-f16.

Mon programme est un style de phpmyadmin et dois donc interargir avec les users créés par mysql.

EDIT.
Il s'agissait de la fonction mysql PASSWORD tout betement xD.
C'est bon !
0