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

PHP & Base de données Discussion :

Hashage MD5 [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de dexter74
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Billets dans le blog
    3
    Par défaut Hashage MD5
    Bonjour à tous , maintenant que je peut m'enregistrer.

    J'aimerai améliorer ma requete .

    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
    CREATE TABLE `Enregistrer` (
      `ID` bigint(50) unsigned NOT NULL auto_increment COMMENT 'Identifier',
      `Login`      varchar(32) NOT NULL default '',
      `Password` varchar(40) NOT NULL default '',
      `Niveau` tinyint(5) unsigned NOT NULL default '1',
      `Email` VARCHAR (50) not null,
      `Joindate` timestamp NOT NULL default CURRENT_TIMESTAMP,
      `Nom`      varchar(32) NOT NULL default '',
      `Pseudo`      varchar(40) NOT NULL default 'Pseudos',
      `Steamid`      varchar(32) NOT NULL default 'Privee',
      `Skype`      varchar(32) NOT NULL default 'Privee',
      `Micro`      varchar(32) NOT NULL default 'Non',
      `Autre`      varchar(255) NOT NULL default 'Pseudos',
      PRIMARY KEY  (`id`),
      KEY `idx_Niveau` (`Niveau`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci ROW_FORMAT=DYNAMIC COMMENT='Gestion Compte';


    inscription.php

    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
    31
    32
    33
    34
    35
    36
    37
     
    <?php 
      include ('config.php');
    ?> 
     
     
    <FORM Method="POST" Action="inscription2.php"> 
     
     
    Login : <br />
    <INPUT type="text" size=20 name="login">  <br />
     
    Password : <br />
    <INPUT type="password" size=20 name="Password">  <br />
     
    Email : <br />
    <INPUT type="text" size=20 name="Email">  <br />
     
    Nom : <br />
    <INPUT type="text" size=20 name="Nom">  <br />
     
    Pseudo : <br />
    <INPUT type="text" size=20 name="Pseudo">  <br />
     
    Steamid : <br />
    <INPUT type="text" size=20 name="Steamid">  <br />
     
    Skype : <br />
    <INPUT type="text" size=20 name="Skype">  <br />
     
    Micro : <br />
    <INPUT type="text" size=20 name="Micro">  <br />
     
    Autre : <br />
    <INPUT type="text" size=20 name="Autre">  <br />
     
    <INPUT type=submit value=Envoyer>  <br />
    J'aimerai que le cryptage soit md5


    inscription2.php

    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
    <?php 
      include ('config.php');
    ?> 
     
     
    <div id="corps">
    <?php 
      $Login = $_POST["login"];
      $Password = $_POST["Password"];
      $Niveau = $_POST["Niveau"];
      $Email = $_POST["Email"];
      $Joindate = $_POST["Joindate"];
      $Nom = $_POST["Nom"];
      $Pseudo = $_POST["Pseudo"];
      $Steamid = $_POST["Steamid"];
      $Skype = $_POST["Skype"];
      $Micro = $_POST["Micro"];
      $Autre = $_POST["Autre"];
     
     $requete ="INSERT INTO Enregistrer (Login,Password,Niveau,Email,Joindate,Nom,Pseudo,steamid,Skype,Micro,Autre) VALUES('$Login','$Password','Niveau','$Email','$Joindate','$Nom','$Pseudo','$steamid','$Skype','$Micro','$Autre')"; 
     mysql_query($requete); 
      ?>

  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
    Par défaut
    Tout simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .... VALUES('$Login',MD5('$Password'), ....
    MD5 n'est pas un cryptage mais un hashage, c'est à dire qu'il n'existe pas l'operation inverse.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Il serait plus judicieux de crypter le mot de passe via php, pour éviter les injections au nivau sql.
    Du genre :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Password = md5($_POST["Password"]);


    Après, si tu veux encore plus sécurisé, tu rajoutes un salt pour pouvoir éviter, au cas ou quelqu'un aurait accès à la base, les rainbow-tables type de bruteforce.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Password = md5("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ac nisi ut justo tempus euismod id a nulla. Integer viverra lectus ut metus volutpat vel iaculis ipsum imperdiet. Maecenas tristique magna sed nulla rhoncus varius.".$_POST["Password"]."Nullam vel vehicula tellus. Vestibulum quam purus, sodales sed porttitor vitae, bibendum pulvinar eros. Etiam dapibus ultricies ornare. Vivamus a turpis ut odio sodales tincidunt. Morbi porta hendrerit dolor. Vestibulum vel arcu lectus, vel sollicitudin.");

    Edit: au fait, je te conseille de carrément refuser l'inscription si une des chaînes de la requête contient un mauvais caractère, même avec les magic_quotes sur on ou des real escape string, on ne sais jamais

    Code php : 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
     
    function asinject($hstack) {
    $chars = array();
    $chars[] = '"';
    $chars[] = "'";
    $chars[] = ";";
    $chars[] = "\\";
    $chars[] = "//";
    $chars[] = "#";
    $chars[] = "--";
    $chars[] = "/*";
    $injectcount = 0;
    foreach($chars as $char) {
    if(strpos($hstack, $char) != false) {
    $injectcount++;
    }
    }
    if($injectcount != 0) {
    return true;
    } else {
    return false;
    }
    }
    if(asinject($_POST['Password']) or asinject($_POST['nom'])) {
    // rajouter un or pour tous les champs
    die('mauvais caractère');
    }
    // reste du code ici

  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
    Par défaut
    Utiliser une expression régulière ne serait-il pas plus adapté qu'une fonction avec tableaux et boucles ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Comme on veut, je vois pas trop la différence du moment qu'il trouve les caractères interdits... juste moins propre

  6. #6
    Membre confirmé
    Avatar de dexter74
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Billets dans le blog
    3
    Par défaut re
    Ceci :

    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
    function asinject($hstack) {
    $chars = array();
    $chars[] = '"';
    $chars[] = "'";
    $chars[] = ";";
    $chars[] = "\\";
    $chars[] = "//";
    $chars[] = "#";
    $chars[] = "--";
    $chars[] = "/*";
    $injectcount = 0;
    foreach($chars as $char) {
    if(strpos($hstack, $char) != false) {
    $injectcount++;
    }
    }
    if($injectcount != 0) {
    return true;
    } else {
    return false;
    }
    }
    if(asinject($_POST['Password']) or asinject($_POST['nom'])) {
    // rajouter un or pour tous les champs
    die('mauvais caractère');
    }
    // reste du code ici
    dans inscription2.php ?

  7. #7
    Membre confirmé
    Avatar de dexter74
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 120
    Billets dans le blog
    3
    Par défaut re
    inscription2.php

    Je remplace :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      $Password = $_POST["Password"];
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Password = md5($_POST["Password"]);


    et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete ="INSERT INTO Enregistrer (Login,Password,Niveau,Email,Joindate,Nom,Pseudo,steamid,Skype,Micro,Autre) VALUES('$Login','$Password','Niveau','$Email','$Joindate','$Nom','$Pseudo','$steamid','$Skype','$Micro','$Autre')"; 
     mysql_query($requete);
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete ="INSERT INTO Enregistrer (Login,Password,Niveau,Email,Joindate,Nom,Pseudo,steamid,Skype,Micro,Autre) VALUES('$Login',$Password = md5($_POST["Password"]);,'Niveau','$Email','$Joindate','$Nom','$Pseudo','$steamid','$Skype','$Micro','$Autre')"; 
     mysql_query($requete);

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Citation Envoyé par dexter74 Voir le message
    inscription2.php

    Je remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      $Password = $_POST["Password"];
    Par :
    $Password = md5($_POST["Password"]);



    et aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete ="INSERT INTO Enregistrer (Login,Password,Niveau,Email,Joindate,Nom,Pseudo,steamid,Skype,Micro,Autre) VALUES('$Login','$Password','Niveau','$Email','$Joindate','$Nom','$Pseudo','$steamid','$Skype','$Micro','$Autre')"; 
     mysql_query($requete);
    Par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $requete ="INSERT INTO Enregistrer (Login,Password,Niveau,Email,Joindate,Nom,Pseudo,steamid,Skype,Micro,Autre) VALUES('$Login',$Password = md5($_POST["Password"]);,'Niveau','$Email','$Joindate','$Nom','$Pseudo','$steamid','$Skype','$Micro','$Autre')"; 
     mysql_query($requete);
    Quand est-ce que tu vas te mettre à lire les réponses des autres ?

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

Discussions similaires

  1. hashage MD5 et génération de nouveau password
    Par ighost dans le forum ASP.NET
    Réponses: 3
    Dernier message: 21/11/2010, 23h46
  2. Hashage md5 et system.security.cryptography
    Par user8 dans le forum Langage
    Réponses: 4
    Dernier message: 13/08/2009, 10h30
  3. Hashage Md5 UnicodeString
    Par Quaker dans le forum C++Builder
    Réponses: 0
    Dernier message: 01/12/2008, 18h23
  4. [SSIS][2k5]Hashage MD5 SSIS
    Par Patchain dans le forum SSIS
    Réponses: 1
    Dernier message: 17/04/2008, 14h28
  5. [Cryptage] Hashage MD5
    Par Ethylene dans le forum Sécurité
    Réponses: 3
    Dernier message: 06/09/2005, 17h18

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