PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 25-05-2009 18:15:34

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Comment générer un mot de passe (MD5)

Bonsoir à tous,

Je vais expliquer mon problème le mieux possible.
J'essaie de créer ou de reprendre un script pouvant regénérer un mot passe qui a été haché (Md5).
J'ai lu dans des forums qu'il n'était pas possible de décrypter le fameux Md5..jusqu'à là c'est normal sinon a quoi bon le MD5 !
Maintenant voilà, j'aimerai savoir si quelqu'un posséderai un petit script permettant de regénérer un mot passe via un mail envoyer au membre.
Exemple:

Oublie de mot de passe
1 étape : on clique deçu, puis on arrive sur une page nous demandant d'insérer son mail.
2 étape : Un mail arrive dans notre boite en nous mentionnant par exemple :
Vous recevez cet email parce que vous (ou quelqu'un qui prétend l'être) avez demandé un changement de mot de passe sur votre compte membre. Si vous pensez recevoir ce message par erreur, effacez-le et votremot de passe restera le même. Dans le cas contraire, vous devez vous rendre sur cette page :http://www.monsite.com/member.php?exemple=key=fa86dc261b88562129679b6d909b2f4b afin de confirmer votre demande.
3 étape : En cliquant sur le lien, nous arrivons sur le site en validant la demande puis un nouveau mail est envoyé mentionnant :
Suite à votre demande, voici votre nouveaumot de passe : 9YOtWATY
NE REPONDEZ PAS A CE MESSAGE: en effet, ceci est un mail automatique,aucune réponse ne serait lue.

J'espère avoir été clair et espère avoir une aide quant à la création ou la reprise d'un script existant pour le modifier par rapport à ma base de donnée.

Merci d'avance pour votre aide.

Anthony

Dernière modification par slyckers (25-05-2009 18:16:22)

Hors ligne

#2 25-05-2009 18:48:32

slyckers
Membre
Inscription : 18-05-2009
Messages : 41

Re : Comment générer un mot de passe (MD5)

Bon je vois que c'est complique...Donc je vous joins mon code et si vous avez une idée pour supprimer le hachage...
J'ai déjà essayé d'enlever le md5 et lors de l'inscription, ce n'est lus haché mais le script ne reconnait pas le mot de pass ... snif !

<?php

session_start();

include("../include/config.php");

include("../include/entete.php"); ?>

<body>
<div id="contenu">

   <div id="header"><?php include('../include/header.php'); ?></div>

   <div id="menu_horizontal"><?php include('../include/menu_horizontal.php'); ?></div>

   <div id="menu_vertical"> <?php $bloc = mysql_query("SELECT * FROM CMS_bloc WHERE active='1' ORDER BY position ");
      while($bloc1 = mysql_fetch_assoc($bloc)) {  ?>
   
<?php include('../bloc/'.$bloc1["titre_fichier_bloc"].'.php'); ?>

<?php } ?></div>
 

   <div id="contenu_corps">
      <div id="corps_haut">
       
      </div>
     <div id="corps">
 
<?php
// on teste si le visiteur a soumis le formulaire  
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
   // On regarde si un des champs ne soit pas vide et si nos variable existe bien
   if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['password']) && !empty($_POST['password'])) && (isset($_POST['confirm']) && !empty($_POST['confirm'])) && (isset($_POST['email']) && !empty($_POST['email'])) && (isset($_POST['code']) && !empty($_POST['code']))     ) {
   
   if( strtolower($_POST['code']) == $_SESSION['enregistrement_du_code'] ) { ?>
<?php
//Maintenant, on se connecte à la base de données


$pseudo_erreur1 = "";
$pseudo_erreur2 = "";
$mdp_erreur = "";
$email_erreur1 = "";
$email_erreur2 = "";

?>

<?php
$i = 0;

//Vérification du pseudo
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM CMS_membre WHERE membre_pseudo = "'.$_POST['pseudo'].'"'), 0);
if($nombrepseudo != 0)
{
        $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre";
        $i++;
}
if (strlen($_POST['pseudo']) < 3 || strlen($_POST['pseudo']) > 15)
{
        $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit";
        $i++;
}
//Vérification du mdp
if ($_POST['password'] != $_POST['confirm'] || empty($_POST['confirm']) || empty($_POST['password']))
{
        $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides";
        $i++;
}
?>
<?php
//Vérification de l'adresse email

//Il faut que l'adresse email n'ait jamais été utilisée

$nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM CMS_membre WHERE membre_email = "'.$_POST['email'].'"'), 0);

if ($nombremail!= 0)
{
        $email_erreur1 = "Votre adresse email est déjà utilisée par un membre";
        $i++;
}
//On vérifie la forme maintenant
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']) || empty($_POST['email']))
{
        $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide";
        $i++;
}
//Vérification de l'adresse MSN
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['msn']) && !empty($_POST['msn']))
{
        $msn_erreur = "Votre adresse MSN n'a pas un format valide";
        $i++;
}


if ($i == 0) // Si i est vide, il n'y a pas d'erreur
{

        echo'<h1>Inscription terminée</h1>';
        echo'<p>Bienvenue '.$_POST['pseudo'].' vous êtes maintenant inscrit sur le forum</p>';
        echo'<p>Cliquez <a href="./modules/compte/index.php">ici</a> pour revenir à la page d accueil</p>';

     
       
        //On vérifie que les champs ne continennent pas de html
        //Puis on crypte le mot de passe
        $temps = time();
       
        $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo'], ENT_QUOTES));
        $email = mysql_real_escape_string(htmlspecialchars($_POST['email'], ENT_QUOTES));
     
        $pass = md5($_POST['password']);
       
        //On balance le tout dans notre table
        mysql_query('
        INSERT INTO CMS_membre (membre_pseudo, membre_mdp, membre_email,            
         membre_inscrit,  
        membre_derniere_visite, membre_avatar)
        VALUES ("'
.$pseudo.'" , "'.$pass.'" , "'.$email.'" ,
         "'
.$temps.'" , "'.$temps.'", "8388607" ) ') or die(mysql_error());
       
       
        //Et on définit les variables de sessions
        $_SESSION['membre_pseudo'] = $pseudo;
        $_SESSION['id'] = mysql_insert_id();
        $_SESSION['level'] = 1;

}
else
{
        echo'<h1>Inscription interrompue</h1>';
        echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>';
        echo'<p>'.$i.' erreur(s)</p>';
        echo'<p>'.$pseudo_erreur1.'</p>';
        echo'<p>'.$pseudo_erreur2.'</p>';
        echo'<p>'.$mdp_erreur.'</p>';
        echo'<p>'.$email_erreur1.'</p>';
        echo'<p>'.$email_erreur2.'</p>';
     
       
        echo'<p>Cliquez <a href="./inscription.php">ici</a> pour recommencer</p>';
}


} else { $erreur1 = 'Désolé le code de sécurité n\'est pas bon.'; }
} else {
    $erreur2 = 'Il y a un champs de vide.';
   }  
}
echo'<p>'.$erreur1.'</p>';
echo'<p>'.$erreur2.'</p>';
mysql_close();
?>
   
    </div>
   </div>
   
 <div id="copyright"><?php include "../include/footer.php"; ?>
</div>
 
</div>

</body>
</html>

Merci

Hors ligne

#3 26-05-2009 10:28:14

Alnoss
Modérateur absent
Lieu : 06 - PACA
Inscription : 11-05-2009
Messages : 541
Site Web

Re : Comment générer un mot de passe (MD5)

Slyckers a écrit :

J'ai lu dans des forums qu'il n'était pas possible de décrypter le fameux Md5..jusqu'à là c'est normal sinon a quoi bon le MD5 !
Maintenant voilà, j'aimerai savoir si quelqu'un posséderai un petit script permettant de regénérer un mot passe via un mail envoyer au membre.

Bonjour,
Puisque tu ne peux le décrypter, tu ne peux donc pas le régénérer et le rendre de nouveau valide.
Ta SEULE solution est, si le mot de passe vient à être oublié, d'en recréer un nouveau. La sécurisation impose quelques sacrifices wink

Pour info : Petite notice du MD5


MERCI de lire le mode d'emploi avant de poster !!

Hors ligne

Pied de page des forums