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 Perl Discussion :

[Exp. régulière] Exigences de complexité d'un mot de passe


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 26
    Points : 12
    Points
    12
    Par défaut [Exp. régulière] Exigences de complexité d'un mot de passe
    Bonjour,

    Dans une application que je développe, les mots de passe utilisateurs doivent répondre à un certain nombre de critères.
    Lorsqu'un utilisateur change son mot de passe, je dois vérifier que le nouveau mot de passe répond bien aux exigences de complexité qui sont:
    -8 caractères minimum
    -au moins 2 chiffres (n'importe où dans la chaîne)
    -au moins un caractère spécial (n'importe où dans la chaîne)

    Le problème, c'est que je n'arrive pas à traduire le fait que les 2 chiffres et le caractère spécial peuvent se situer n'importe où dans le mot de passe.

    Pour l'instant, j'ai fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .{2}[0-9].{,2}[0-9].{4}
    mais c'est particulièrement difficile à matcher:
    2 caractères (n'importe lesquels), suivi d'un chiffre puis de 0 ou 2 caractères (n'importe lesquels) puis d'un chiffre puis de 4 caractères (n'importe lesquels).

    Et ça ne correspond pas à mon besoin.


    Avez vous une idée :

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ce problème ne relève pas exactement d'une unique regex, car il ne s'agit pas vraiment d'un format imposé, mais plutôt de caractéristiques générales de la chaîne. Il est plus simple de faire plusieurs tests simples sur la chaîne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    my $password = ... ;
    if( length($password) >= 8  and  (() = ($password =~ m/\d/g)) >= 2
        and  $password =~ m/[^\w\d]/ ) {
            print "Password correct.\n";
    } else {
            print "Password insuffisant.\n";
    }
    --
    Jedaï

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Effectivement, j'avais pensé à ça, mais ce que je n'ai pas précisé c'est que l'expression régulière est enregistrée dans une base de données.
    Je n'ai donc que la possiblité de faire ça en une seule expression régulière. Pas d'instruction

    mais je ne sais pas si c'est vraiment possible

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si c'est possible... Mais ce n'est pas très propre.
    Voici une version qui le fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    /^ (?=.*?[^a-zA-Z0-9].*) (?=.{8,}) .*\d.*\d.* $/x
    --
    Jedaï

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2003
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Ok merci, je vais tester ça et je vous ferai un retour

Discussions similaires

  1. Algorithme de calcul de la complexité d'un mot de passe
    Par chris_wafer dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 22/05/2015, 14h57
  2. [RegEx] Pb Exp. Régulière
    Par fly06 dans le forum Langage
    Réponses: 2
    Dernier message: 20/11/2006, 15h49
  3. Réponses: 10
    Dernier message: 07/10/2006, 16h21
  4. [RegEx] Pb avec exp régulière
    Par hansaplast dans le forum Langage
    Réponses: 3
    Dernier message: 30/08/2006, 08h38

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