PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Durcir le mot passe
Durcir le mot passe
Débuté par Ralph IGCI, 20 nov. 2025 17:46 - 1 réponse
Membre enregistré
523 messages
Posté le 20 novembre 2025 - 17:46
Dans les champs métier de la version 2025, il y a le champ mot de passe
et la fonction suivante:
Procedure VérificationCritères(sValeur)
// Raz
ZoneRépétéeSupprimeTout(ZR_CRITEREMDP)

// Les critères sont ils tous respectés ?
bOk est un booléen = Vrai

// Personnalisez ici les critères à respecter

// - 1 majuscule
bMajuscule est un booléen = (AjouteCritère("Au moins une majuscule", Minuscule(sValeur)<>sValeur))
SI PAS bMajuscule ALORS bOk = Faux

// - 1 minuscule
bMinuscule est un booléen = (AjouteCritère("Au moins une minuscule", Majuscule(sValeur)<>sValeur))
SI PAS bMinuscule ALORS bOk = Faux

// - Taille min
soit nTaille = Taille(sValeur)
SI PAS AjouteCritère("12 caractères minimum", nTaille >= 12) ALORS bOk = Faux

// calcul de la force du mot de passe
nForce est un entier
SELON nTaille
CAS <8: nForce = eForce_TresFaible
CAS <12: nForce = eForce_Faible
CAS <16: nForce = (bMajuscule _ET_ bMinuscule ? eForce_Moyen SINON eForce_Faible)
CAS <20: nForce = (bMajuscule _ET_ bMinuscule ? eForce_Fort SINON eForce_Moyen)
AUTRE CAS: nForce = (bMajuscule _ET_ bMinuscule ? eForce_TresFort SINON eForce_Moyen)
FIN

// modification de la jauge
SI nTaille = 0 ALORS
JAUGE_ForceMDP = 0
SINON
SELON nForce
CAS eForce_TresFaible
JAUGE_ForceMDP = 20
JAUGE_ForceMDP..CouleurJauge = RougeClair
CAS eForce_Faible
JAUGE_ForceMDP = 40
JAUGE_ForceMDP..CouleurJauge = OrangeClair
CAS eForce_Moyen
JAUGE_ForceMDP = 60
JAUGE_ForceMDP..CouleurJauge = VertPastel
CAS eForce_Fort
JAUGE_ForceMDP = 80
JAUGE_ForceMDP..CouleurJauge = VertClair
CAS eForce_TresFort
JAUGE_ForceMDP = 100
JAUGE_ForceMDP..CouleurJauge = VertFoncé
FIN
FIN

// Indique si les critères sont respectés
RENVOYER bOk


Je veux ajouter les caracyères spéciaux et au moins un ou deux chiffres


bMajuscule est un booléen = (AjouteCritère("Au moins une majuscule", Minuscule(sValeur)<>sValeur))
Membre enregistré
4 308 messages
Posté le 21 novembre 2025 - 11:18
Bonjour,
Pourquoi ne pas utiliser un expression régulière
^(?=.*[A-Z])                # au moins une majuscule
(?=.*[a-z])                 # au moins une minuscule
(?=.*[@#$%^&(){}|<>_\-+=]) # au moins un caractère spécial (sans , " ' * . ? ! : ; / \)
(?=(?:.*\d){1,2})           # entre 1 et 2 chiffres
.{12,}$                     # longueur minimale de 12


Sinon, tu as aussi la fonction CaractOccurrenceType
--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modifié, 21 novembre 2025 - 11:38