Bonsoir mon cryptage de vernam ne marche pas et je ne vois ou est le probleme.
Merci de m'aider
page d'inscription (page de cryptage):
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Poliboolold-groupe</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" title="poli2" href="stylemembres.css" /> </head> <body> <div id="actu"> <img src="btn_inscrivez_vous.gif" alt="inscrivez_vous"/> <br/> <h1>Mais pourquoi<img src="pointdinterro.jpg" alt="?"/></h1> <p>La communauté de poliboolold.fr est basée sur l'auto-gération : c'est a dire les personnes administrateurs du site(=les fondateurs) ne passe pas son temps a bannir les gens. Afin de garentir une certaine organisation , nous obligeons au personnes désireuses d'utiliser nos services de s'inscrire.</p> <hr/> <h1>Inscription a l'espace membre</h1> <?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=;dbname=', '', '', $pdo_options); if(isset ($_SESSION['id']) AND isset($_SESSION['pseudo'])) { ?> <p><strong>Les multis-comptes n'etant pas autorisée vous ne pouvez pas vous ré-inscrire</strong></p> <?php } elseif(!isset( $_POST['pseudo'])AND !isset( $_POST['mdp']) AND !isset( $_POST['mdpdouble']) AND !isset( $_POST['email'])) { ?> <form method="post" action="membres_inscription.php"> <p> Entrez un pseudo compris entre 4 et 20 caractères <input type="text" name="pseudo"/><span><?php if($_GET['pris']==1){echo"Votre pseudo est déja pris";} ?></span><span><?php if($_GET['pseudo']==1){echo"Votre pseudo est trop court ou trop long";} ?></span><br/> Entrez un mot de passe sécuritaire <input type="password" name="mdp"/><br/> Retapez le mot de passe a l'identique <input type="password" name="mdpdouble"/><span><?php if($_GET['erreur']==1){echo"Mot de passe non identique";} ?></span><br/> Entrez votre adresse e-mail valide <input type="text" name="email"/><span><?php if($_GET['mail']==1){echo"L'adresse email n'est pas valide ou déja inscrite";} ?></span><br/> Entrez le nom de votre mère:<input type="text" name="verman"/><span><?php if($_GET['verman']==1){echo"Vous n'avez pas rentré de nom";} ?></span><br/> <?php require('captcha.php'); ?><label for="captcha">Recopiez le mot : "<?php echo captcha(); ?>"</label> <input type="text" name="captcha" id="captcha" /><br /> <strong> En vous inscrivant vous acceptez les CGU disponible <a href="../cgu.php" >ici</a></strong><br/> <input type="submit" value="Valider" /> <?php } elseif($_POST['mdp']== $_POST['mdpdouble']) { if(!empty($_POST['verman'])) { include("verman.php"); $cript=Cryptage($_POST['mdp'],$_POST['verman']); $pass_hacher = sha1($_POST['mdp']); $req= $bdd->prepare('SELECT id FROM membres WHERE pseudo=:pseudo AND pass=:pass'); $req->execute(array('pseudo'=> $_POST['pseudo'],'pass'=> $pass_hacher)); $resultat= $req->fetch(); if(!$resultat) { $req2= $bdd->prepare('SELECT id FROM membres WHERE email=:email'); $req2->execute(array('email'=> $_POST['email'])); $resultat= $req2->fetch(); if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']) AND !$resultat) { $phrase = $_POST['pseudo']; $longueur = strlen($phrase); if(!empty($_POST['pseudo']) && 4 < $longueur && $longueur < 20 ) { $pass_hache = sha1($_POST['mdp']); $requete = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription,modo,actif,verman) VALUES(:pseudo, :pass, :email, CURDATE(),0,0,:verman)'); $requete->execute(array('pseudo'=> $_POST['pseudo'], 'pass'=> $pass_hache, 'email'=> $_POST['email'], 'verman'=> addslashes($cript))); $requete->closeCursor(); ?> <p>Félicitations vous etes inscrit : <a href="../index.php">Retournez a l'accueil</a></p> <p>Vous allez recevoir un mail pour valider votre inscription , <strong>Attention il peut se trouver dans les couriers indisérables</strong></p> <?php echo $_POST['pseudo']; $actif=$bdd->prepare('INSERT INTO code_actif(id) VALUES (:id)'); $actif->execute(array('id'=>$_POST['pseudo'])); $actif->closeCursor(); $actif2 = $bdd->prepare('SELECT * FROM code_actif WHERE id=?'); $actif2->execute(array($_POST['pseudo'])); $actif3 = $actif2->fetch(); $_SESSION['actif']=$_POST['pseudo']; $Name = "Poliboolold.fr"; //senders name $email = "poliboolold@gmail.com"; //senders e-mail adress $recipient = $_POST['email']; //recipient $mail_body = "Votre code d'activation est le: ".$actif3['code'].". Allez sur:www.poliboolold.fr/membres/actif.php"; //mail body $subject = "Validation de votre compte"; //subject $header = "From: ". $Name . " <" . $email . ">\r\n"; //optional headerfields mail($recipient, $subject, $mail_body, $header); //mail command :) } else { header('Location: membres_inscription.php?pseudo=1'); } } else { header('Location: membres_inscription.php?mail=1'); } } else { header('Location: membres_inscription.php?pris=1'); } } else { header('Location: membres_inscription.php?verman=1'); } } else { header('Location: membres_inscription.php?erreur=1'); } } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } ?> </div> </body> </html>
page de la fonction:
<?php function Cryptage($MDP, $Clef){ $LClef = strlen($Clef); $LMDP = strlen($MDP); if ($LClef < $LMDP){ $Clef = str_pad($Clef, $LMDP, $Clef, STR_PAD_RIGHT); } elseif ($LClef > $LMDP){ $diff = $LClef - $LMDP; $_Clef = substr($Clef, 0, -$diff); } return $MDP ^ $Clef; // La fonction envoie le texte crypté } ?>
page de decryptage:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>poliboolold.fr</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php try { if(!isset($_POST['pseudo']) && !isset($_POST['clef'])) { ?> <form method="post" action="mdp_oubli.php"> <p> ><span><?php if($_GET['vide']==1){echo"Merci de remplir tout les champs.";} ?></span><br/> <label>Entrez votre pseudo</label><input type="text" name="pseudo" /><span><?php if($_GET['pseudo']==1){echo"Ce n'est pas le bon pseudo";} ?></span><br/> <label>Quelle est le nom de votre mère?</label><input type="text" name="clef" /><span><?php if($_GET['verman']==1){echo"Vous vous etes trompé de nom";} ?></span><br/> <input type="submit"/><br/> </p> </form> <?php } else { echo"Hello"; if(!empty($_POST['pseudo']) && !empty($_POST['clef'])) { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=;dbname=','','',$pdo_options); $req = $bdd->prepare('SELECT * FROM membres WHERE pseudo = ?'); $req->execute(array($_POST['pseudo'])); $req2 = $req->fetch(); $req->closeCursor(); if($req2) { include("verman.php"); $cript=Cryptage($req2['verman'],$_POST['clef']); header('Location: membres_inscription.php'); if($cript==$req2['pass']) { echo"Votre mot de passe est le: ".$req2['pass']; } else { header('Location: mdp_oubli.php?verman=1'); } } else { header('Location: mdp_oubli.php?pseudo=1'); } } else { header('Location: mdp_oubli.php?vide=1'); } } } catch(PDOException $e) { echo '<p>Erreur PDO dans '.$e->getFile().' L.'.$e->getLine().' : <br/> '.$e->getMessage().'<br /></p>'; } ?> </body> </html>
Tout ceci est associé a un espage membre (page de cryptage=page d'inscription , page de decryptage =page de récupération du mot de passe en cas d'oubli).
Merci d'avance
Partager