crypter le password

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : crypter le password

par ledruid » 28 févr. 2006, 23:57

merci a vous.. j'ai afficher mes variablea plusieurs endroit du code, et j'ai trouvé..... ne riez pas!!!

j'avais mon champs pour le password qui avait dans le formulaire des mauvais parametre ... Oups..


Bonne fin de soirée

par ledruid » 28 févr. 2006, 23:35

ok, j'ai aussi pensé que mes variable reste "stocker" quelque part ...
Je vais essayer un peu de continuer a chercher..


Merci a vous tous

par Cyrano » 28 févr. 2006, 23:31

Faire afficher les variable peut t'aider à repérer des erreurs avant l'insertion vers MySQL : si il n'y a pas de changement dans le hachage malgré le changement de mot de passe, c'est que le premier hachage est conservé en mémoire quelque part : il faut trouver où. En affichant les variables en différents endroits, tu verras un peu mieux ce qui se passe.

par ledruid » 28 févr. 2006, 23:29

mais ce que je ne comprend pas c'est que mon probleme n'est pas a l'affichage, quand je verifie mon password apres la fonction md5 c'est en faisant des commandes sq dans ma base de donnée direct.

par Cyrano » 28 févr. 2006, 23:25

Affiche avec echo() tout simplement

par ledruid » 28 févr. 2006, 23:16

bon, je suis asser debutant, pour mon mot de passe dans ma base


Champ password

Type Varchar

Taille 250

Attribut aucun

Null not null

(je n'ai pas mis d'attribut)

et au sujet de l'affichage de la valeur du hash, pourriez vous me donner un exemple ? apres je vous laisse tranquille

:wink:

par iclo » 28 févr. 2006, 23:01

Il faut être méthodique: si le mot de passe qui est dans ta base n'est pas correcte, c'est plus que probablement que tu as une erreur lors de son traitement. Comme par fait un print ou un echo de la valeur récupérer par $_POST et par faire un affichage de la valeur du hash après l'utilisation de md5.

par ledruid » 28 févr. 2006, 22:54

merci ,j'ai corrigé , mais le probleme ne change pas... j'ai beau chercher je ne comprend pas..

si je reprend mon ancien code, ou dois-je mettre la fonction md5 ?

(le code fonctione tres biens , mais je ne sai spas ou mettre la fonction..)

Merci encore de votre aide.. c'est tres simpa

<?php require_once('*****_SQL.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}



if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form2")) {
	
  $insertSQL = sprintf("INSERT INTO inscription (numero, sexe, pseudo, password, date_j, date_m, date_a, pays, code_postal, ville, email) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['numero'], "int"),
                       GetSQLValueString($_POST['sexe'], "text"),
                       GetSQLValueString($_POST['pseudo'], "text"),
                       GetSQLValueString($_POST['password'], "text"),
                       GetSQLValueString($_POST['date_j'], "int"),
                       GetSQLValueString($_POST['date_m'], "int"),
                       GetSQLValueString($_POST['date_a'], "int"),
                       GetSQLValueString($_POST['pays'], "text"),
                       GetSQLValueString($_POST['code_postal'], "text"),
                       GetSQLValueString($_POST['ville'], "text"),
                       GetSQLValueString($_POST['email'], "text"));

  mysql_select_db($database_*****_SQL, $*****_SQL);
  $Result1 = mysql_query($insertSQL, $*****_SQL) or die(mysql_error());
}
?>

par charabia » 28 févr. 2006, 22:32

$pass=md5($_POST['pass']);
Tu avais un $ en trop.

par ledruid » 28 févr. 2006, 22:25

j'ai changer mon code pour voir, mais pareil.. voila le code :
<?php

$sexe= $_POST['sexe'] ;
$pseudo= $_POST['pseudo']; 
$pass =md5($_POST['$pass']) ;  //<-----
$date_j= $_POST['date_j'];
$date_m= $_POST['date_m'] ;
$date_a= $_POST['date_a'] ;
$pays= $_POST['pays'] ;
$code_postal= $_POST['code_postal'] ;
$ville= $_POST['ville'] ;
$email= $_POST['mail'] ;

echo( "Votre sexe: <b>".$sexe."</b><br>\n" ) ;
echo( "Votre pseudo: <b>".$pseudo."</b><br>\n" ) ;
echo( "Votre pass: <b>".$pass."</b><br>\n" ) ;
echo( "Votre date_j: <b>".$date_j."</b><br>\n" ) ;
echo( "Votre date_m: <b>".$date_m."</b><br>\n" ) ;
echo( "Votre date_a: <b>".$date_a."</b><br>\n" ) ;
echo( "Votre pays: <b>".$pays."</b><br>\n" ) ;
echo( "Votre code: <b>".$code_postal."</b><br>\n" ) ;
echo( "Votre ville: <b>".$ville."</b><br>\n" ) ;
echo( "Votre mail: <b>".$email."</b><br>\n" ) ;



  $dbh = mysql_connect("localhost","******","********") ;

  $sql = "INSERT INTO `inscription` (`numero`,`sexe`,`pseudo`,`password`,`date_j`,`date_m`,`date_a`,`pays`,`code_postal`,`ville`,`email`) VALUES ('','$sexe', '$pseudo','$pass','$date_j','$date_m','$date_a','$pays','$code_postal','$ville','$email')";
  

  $requete = mysql_db_query("******",$sql,$dbh);
	

  if($requete)
  {
    echo "L'inscription s'est bien déroulée";
  }
  
  mysql_close($dbh);
  
?>

<?php

par charabia » 28 févr. 2006, 21:54

Mmmmhhh très bizarre tout ça. On peut voir un tit bout de code où tu fais cette transformation ?

par ledruid » 28 févr. 2006, 19:57

merci pour la reponse rapide mais j'ai un petit soucis.. deux insertion deans mes tables (age, sexe, prenom, password) me donne exactement le meme hachage dans ma table (et mes pass d'oruigine sont totalement different)

28 / sexe_F / antoine / d41d8cd98f00b204e9800998ecf8427e
27 / sexe_F / yvan / d41d8cd98f00b204e9800998ecf8427e

la je ne comprend plus rien...

par Cyrano » 28 févr. 2006, 18:55

Tu as deux méhodes qui ont du reste donné lieu à des débats intéressants :
- Hachage;
- Cryptographie;

Dans le premier cas, ce n'est pas réversible : md5(), sha1()

Dans le second cas, il est possible de retrouver un mot de passe perdu en décryptant : utilisation de la librairie mcrypt, voir le tuto sur le site de PHPFrance, ou encore cryptage directement en SQL avec une fonction intégrée à MySQL : AES_ENCRYPT().

La solution simple, c'est le hachage:
$mdp_chiffre = md5($mdp_en_clair);
C'est tout.

Pour l'authentification, tu récupères le mot de passe de l'internaute, tu le haches de la même manière, tu récupères le mot de passe haché stocké dans la base et tu compares les deux.

par ledruid » 28 févr. 2006, 18:03

pouvez vous me dire comment mettre la fonction md5 dans mon code ?

et surtout ou ?

meric d'avance

par charabia » 28 févr. 2006, 17:48

Tu peux utiliser la méthode de cryptage md5() pour crypter les mots de passe. Attention c'est irréversible.