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

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    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
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    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';

  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 : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    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 émérite 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
    Points : 2 273
    Points
    2 273
    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 : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    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 régulier Avatar de thecanea
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    131
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 131
    Points : 107
    Points
    107
    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
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    je ne suis pas un pro des regexp... on peut m'expliquer a quoi correspond ?=

  8. #8
    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 : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545

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

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 477
    Points : 4 688
    Points
    4 688
    Par défaut
    ah ok je vais potasser tout ca =)
    merci ^^

  10. #10
    Membre émérite 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
    Points : 2 273
    Points
    2 273
    Par défaut
    A mon avis ceci est une erreur :

    Citation Envoyé par http://g-rossolini.developpez.com/tu...=syntaxe#LII-8
    Je ne traiterai pas des assertion positives car elles me semblent totalement inutiles : autant mettre la chaîne sans assertion, cela revient au même que faire une assertion positive.
    Par exemple je ne vois pas comment répondre à la question de ce topic avec que des assertions négatives ou sans assertions du tout mais je ne suis pas du tout un expert en regex

    (En fait avec que des assertions négatives il suffit d'inverser les classes je pense)

  11. #11
    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 : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Par exemple je ne vois pas comment répondre à la question de ce topic avec que des assertions négatives ou sans assertions du tout mais je ne suis pas du tout un expert en regex
    Très intéressante remarque que je vais lui faire suivre de ce pas...

  12. #12
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Joli, mais ça me semble être le travers des regex : c'est difficile à lire :/

+ 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, 13h58
  2. Masque saisie"*" dans une Box mot de passe
    Par Alien_psy dans le forum IHM
    Réponses: 11
    Dernier message: 09/02/2013, 15h09
  3. Masque de saisie pour mot de passe
    Par NoussaL dans le forum VB.NET
    Réponses: 9
    Dernier message: 16/09/2008, 13h50
  4. Réponses: 12
    Dernier message: 08/09/2006, 15h58
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

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