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 :

Masque de mot de passe [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut Masque de mot de passe
    Bonjour,

    J'ai cherché, mais je n'arrive pas à trouver l'expression qui marche bien...

    Je souhaite trouver le masque qui me permet de forcer un utilisateur à saisir un mot de passe qui contient :
    -au moins une minuscule,
    -au moins une majuscule,
    -au moins un chiffre,
    -et au minimum une chaine de 8 caractères en tout !

    Je n'arrive pas à tourner l'expression dans le bon sens...

    Si vous avez des idées... Merci d'avance !!!

  2. #2
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 507
    Par défaut
    salut,
    bon... comme j'aime bien faire complique...
    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
    function VerifPass($str)
    {
     $pattern='#.{8,}#';
     if(!preg_match($pattern,$str))
     {
      echo 'trop court';
      return false;
     }
     $pattern='#[a-z]#';
     if(!preg_match($pattern,$str))
     {
      echo 'pas de minuscules';
      return false;
     }
     $pattern='#[A-Z]#';
     if(!preg_match($pattern,$str))
     {
      echo 'pas de majuscules';
      return false;
     }
     $pattern='#[0-9]#';
     if(!preg_match($pattern,$str))
     {
      echo 'pas de chiffre';
      return false;
     }
     return true;
    }
    if(VerifPass("Tes1234s"))
    echo 'mot de passe valable';
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Plusieurs tests donnent un résultat assez facile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if ( strlen ($str) >= 8          and
         preg_match('/[a-z]/', $str) and
         preg_match('/[A-Z]/', $str) and
         preg_match('/[0-9]/', $str) )
     
         print "mot de passe valide";
    else
         print "mot de passe non valide";

  4. #4
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $str = "azer125eeAz";
    if(preg_match("`^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,}$`", $str))	{
    	echo 'ok';
    }
    else {
    	echo 'no';
    }

  5. #5
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Joli, je ne connaissais pas

    Je me demande juste ce que ça donne au niveau perfs.

    --- edit ---

    En plus, il n'y a pas photo !

    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
    38
    39
     
    <?php
    $str = "aZzer1256666";
     
    $nbTests = 100000;
     
    $start = microtime(true);
    for ($i=1; $i<$nbTests; $i++) {
     
    if ( strlen ($str) >= 8          and
         preg_match('/[a-z]/', $str) and
         preg_match('/[A-Z]/', $str) and
         preg_match('/[0-9]/', $str) )
     
        $dummy = "ok";
    else
        $dummy = "ko";
    }
    $end  = microtime(true);
    $time = $end - $start;
    echo "t1 = ". $time ."\n";
     
    $start = microtime(true);
    for ($i=1; $i<$nbTests; $i++) {
     
    if(preg_match("`^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,}$`", $str))
        $dummy = "ok";
    else
        $dummy = "ko";
     
    }
    $end = microtime(true);
    $time = $end - $start;
    echo "t2 = ". $time ."\n";
     
    /* RESULTATS
    t1 = 1.0430560112
    t2 = 0.49570107460022
    */

  6. #6
    Membre confirmé Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Par défaut
    Super !!!

    C'est ce que je cherchais... et je comprends que je n'ai pas trouvé^^

    Encore merci à vous, pour toutes vos solutions, et pour les tests

    Bonne journée !!

    Cdlmt,

    Thec

  7. #7
    Membre Expert
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 507
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 507
    Par défaut
    je ne suis pas un pro des regexp... on peut m'expliquer a quoi correspond ?=
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

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

Discussions similaires

  1. [XL-2007] Affichage d'une feuille masquée et mot de passe.
    Par marc56 dans le forum Excel
    Réponses: 9
    Dernier message: 21/08/2016, 14h58
  2. Masque saisie"*" dans une Box mot de passe
    Par Alien_psy dans le forum IHM
    Réponses: 11
    Dernier message: 09/02/2013, 16h09
  3. Masque de saisie pour mot de passe
    Par NoussaL dans le forum VB.NET
    Réponses: 9
    Dernier message: 16/09/2008, 14h50
  4. Réponses: 12
    Dernier message: 08/09/2006, 16h58
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 23h16

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