PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Vérification d'un mot de passe
Vérification d'un mot de passe
Débuté par Yvan H, 18 mai 2018 15:08 - 2 réponses
Membre enregistré
34 messages
Popularité : +7 (7 votes)
Posté le 18 mai 2018 - 15:08
Bonjour,

J'essaye de vérifier un mot de passe quand on clique sur un bouton :
SI (VérifieExpressionRégulière(SAI_Pw, "([a-z]+[A-Z]+[0-9]+([\W])+){8,}")) ALORS
Info("Correct")
SINON
Info("Incorrect")
FIN

Là, le mot de passe doit avoir :
- au moins une minuscule
- au moins une majuscule
- au moins un chiffre
- au moins un caractère spécial
- au moins 8 caractères au total

(Je me suis aidé de l'assistant pour créer l'expression)
Le problème, c'est que je n'arrive jamais à avoir une condition vraie ! La page m'affiche "incorrect" quoi que je rentre !

Vous avez une idée ?
Merci.
Message modifié, 18 mai 2018 - 15:08
Posté le 03 décembre 2018 - 21:03
Bonsoir,

Il semble que ces expressions ne fonctionnent pas pour ce que vous souhaitez mettre en place.

Une modification ainsi
SI VérifieExpressionRégulière (SAI_MDP2, "([a-z])"+"([A-Z])"+"([0-9])"+"([!?@#$&*])+){8,}") = Vrai ALORS

fonctionne mieux mais ne détecte pas le contenu vraiment, si le mot de passe commence par autre chose qu'une minuscule, cela rendra faux.

Le mieux pour le moment (solution que j'ai trouvée) est de stocker la saisie dans un tableau et de tester chaque caractère et de renseigner une variable pour chaque composant.

nV_Minuscule est un entier = 0
nV_Majuscule est un entier = 0
nV_Chiffre est un entier = 0
nV_Special est un entier = 0

Ex: Saisie est "aaBB@@11", on teste en premier que la saisie est >= à 8 caractères
donc on parse la saisie pour chaque caractère et on incrémente les variables correspondantes si ok

à la fin on teste que (nV_Minuscule > 0 ET nV_Majuscule > 0 ET nV_Chiffre > 0 ET nV_Special >0)

Désolé, cela fonctionne ainsi et permet de mettre en place la validation. Mais je suis d'accord que l'expression régulière devrait fonctionner mieux.

Museam
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 04 décembre 2018 - 13:46
Bonjour,

Même idée que Museam sauf que je transformerai chaque caractère de la chaine en valeur ASCII par Asc et ensuite en comparant cette valeur ASCII
Cela demande un peu de code pour écrire la procédure qui fait ce comptage.

--
Cordialement
François