IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

chiffrer un mot de passe


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut chiffrer un mot de passe
    bonjour j'ai essayé de chiffrer les mot de passe dans mon formulaire donc dans la page inscription j'ai fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mdp1= mysql_real_escape_string(Sha1($_POST['mdp1']));
    $mdp2= mysql_real_escape_string(Sha1($_POST['mdp2']));
    et les mots de passe sont bien chiffrés dans la BDD ; mais le probleme est que lors de la connexion il indique que les mot de passe sont erronés.

    dans la page de connexion jai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    $connect = mysqli_connect("localhost", "root", "", "projet") or ("échec  de connexion " . mysqli_error($connect));
    if(isset($_POST['valider'])){
    if (isset($_POST['pseudo'])  && isset($_POST['mdp']) ){
    $pseudo=mysql_real_escape_string($_POST['pseudo']);
    $mdp=mysql_real_escape_string(Sha1($_POST['mdp']));
     
    //$pseudo=htmlentities($_POST['pseudo']);
    //$mdp=htmlentities($_POST['mdp']);
     
    $req=mysqli_query($connect," select *from utilisateur where pseudo='".$pseudo."' and mop='".$mdp."'") or die (mysqli_error($connect));
    if($row  = mysqli_fetch_assoc($req)){
    $num=$row['id_util'];
    $nom=$row['nom'];
    $prenom=$row['prenom'];
    $pseudo=$row['pseudo'];
     
    //sleep(4);
    session_start();
    $_SESSION['connecter']=true;
    $_SESSION['num']=$num;
    $_SESSION['nom']=$nom;
    $_SESSION['prenom']=$prenom;
    $_SESSION['pseudo']=$pseudo;
    header ("location: acceil.php?numero=".$_SESSION['num']);
    }
    else{
    $erreur = "V&eacute;rifier votre Pseudo ou mot de passe SVP!";
    }}}	
    ?>
    l 'erreur commence juste aprés l'ajout de sha1 c'est a dire que si j'enleve le sha1 tout fonctionne trés bien
    pouvez vous m'aider svp ?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu veux bien dire que tu as un mot de passe hashé dans le base de donnée mais que la connexion fonctionne quand tu ne fais pas sha1() dans la page de connexion ?
    Si oui, je pense que tu interprètes mal tes résultats.

    Pourquoi il y a deux mots de passe dans la page inscription ?
    Est-ce que ta colonne mot de passe s'appelle vraiment "mop" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    slt Premièrement merci bien pour votre aide

    concerne votre question oui ma colonne s'appelle "mop" et le deuxième mot de passe c'est pour la vérification si tout je n'ai pas fait tout le code d'inscription car il est un peu long ......le problème est dans sha1 leur syntaxe est juste je pense mais leur de vérification dans la connexion il indique que le mot de passe est faux

    mon code est juste 100% avant l'ajoute de sha1 dans les page inscription et connexion donc le problème dans sha1

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si le deuxième mot de passe est seulement la pour la comparaison, ça ne sert à rien de faire sha1() dessus.
    De même ça ne sert à rien de faire mysql_real_escape_string() en plus de sha1() sur ton mot de passe.

    Un problème classique est que ta colonne "mop" peut être trop petite : utilise binary(20)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    merci infiniment monsieur sabotage oui c'est vrais le problème est dans la taille si tout

    et j'ai fait mysql_real_escape_string() en plus de sha1() pour sécurité mon formulaire ....a ce que ça c'est faux???
    en plus J'ai fait mysql_real_escape_string() dans tous mes champs dans le formulaire de l’inscription pour les sécurisé aussi!!

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as raison d'utiliser mysql_real_escape_string() quand tu mets des données non fiables dans une requête.
    Mais sha1() produit un hashage, qui ne peut donc rien contenir de dangereux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    oui vous avez raison merci encor foins

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 383
    Points : 10 411
    Points
    10 411
    Par défaut
    Salut,

    Tant que tu es dans ton code, il serait judicieux d'utiliser sha 256 minimum avec la fonction hash hash("sha256",$_POST['mdp']) ou sha 512. Ce ne sont pas les fonctions les plus puissantes (crypt ou password_hash faisant mieux) mais c'est le minimum aujourd'hui, sha1 n'étant plus employé pour sécuriser des mots de passes. Si tu fais ces changements n'oublies pas de modifier la longueur de tes champs en bdd en conséquence.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2011, 12h11
  2. [MySQL] Chiffrer un mot de passe
    Par lamou23 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 23/06/2010, 15h03
  3. Chiffrer mot de passe dans URL
    Par Khleo dans le forum Langage
    Réponses: 9
    Dernier message: 15/10/2008, 23h25
  4. [Tableaux] Chiffrer les mots de passe
    Par fourniey dans le forum Langage
    Réponses: 6
    Dernier message: 19/09/2007, 00h39
  5. Réponses: 2
    Dernier message: 22/01/2007, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo