Meilleur auteur de réponses
Utilisation des caractères

Question
-
Bonjour j'ai un projet qui possède une fonction pour tester son mot de passe, pour cela j'ai mi une textebox dans laquelle je veux utiliser textchanged qui si:
le mot de passe contient une majuscule, un caractère spécial et un nombre, une barre devient verte pour montrer que le mot de passe est "fort". Seulement, je sais pas comment faire pour réunir ces tout sa, au départ j'avais fait une variable pour les majuscules appellée "Majuscule" j'avais comme ceci:
Dim Majuscules() As Char = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
Pour les nombres j'avais fait:
Dim DesNombres() As Char = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
et pour les caractères spéciaux j'avais fait:
Dim CaraSpecial() As Char = {"&", "@"}
Et pour les utiliser j'avais fait:
Private Sub testmdp_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles testmdp.TextChanged
Dim DesNombres() As Char = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}
Dim CaraSpecial() As Char = {"&", "@"}
Dim Majuscules() As Char = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
If testmdp.Text.Contains(Majuscules) Dnd testmdp.Dext.Contains(CaraSpecial) Dnd testmdp.Text.Contains(DesNombres) Then
LineShape1.BorderColor = Color.Green
ElseIf testmdp.Text.Contains(DesNombres) Then
LineShape1.BorderColor = Color.Orange
Else
LineShape1.BorderColor = Color.Red
End If
End SubSauf que là le code dit que si testmdp.text contient "Majuscules" (tous l'alphabet), "DesNombres" (tous les nombres) et "CaraSpecial" (tous les caractères) la barre passe au vert mais moi je veux juste si testmdp.text contient au moins une majuscule, un nombre et un caractère spécial.
Des idées?
Merci d'avance
Réponses
-
Bonjour,
Je pesne que Dnd c'est une faute de frappe.
Pour améliorer ton algo tu pourrais rajouter une condition sur le nombre de caractères saisis. En mixant le tout avec ton code existant, ça donnerai un truc du genre : si tu as moins de 8 caractère c'est rouge, si tu as entre 8 et 16 caractères avec juste une majuscule c'est orange , si tu as entre 8 et 16 caractères avec une maj, un chiffre et un spécial c'est vert etc ... après à toi d'affiner comme tu veux. tu pourrais même rajouter un niveau très fort en vert foncé pour les mdp qui on plus de 16 caractères et une maj, un chiffre et un caractère spécial.
Après je pense que tu pourrais simplifier ton algo en utilisant les Regex.
Tu peux regarder cet article pour t'inspirer si tu veux : Validating That Passwords Are Complex (Visual Basic)
- Proposé comme réponse Jordane Aucagne jeudi 15 décembre 2016 07:55
- Marqué comme réponse Nina ZaekovaMicrosoft contingent staff, Moderator mercredi 21 décembre 2016 14:54
Toutes les réponses
-
-
Bonjour,
Je pesne que Dnd c'est une faute de frappe.
Pour améliorer ton algo tu pourrais rajouter une condition sur le nombre de caractères saisis. En mixant le tout avec ton code existant, ça donnerai un truc du genre : si tu as moins de 8 caractère c'est rouge, si tu as entre 8 et 16 caractères avec juste une majuscule c'est orange , si tu as entre 8 et 16 caractères avec une maj, un chiffre et un spécial c'est vert etc ... après à toi d'affiner comme tu veux. tu pourrais même rajouter un niveau très fort en vert foncé pour les mdp qui on plus de 16 caractères et une maj, un chiffre et un caractère spécial.
Après je pense que tu pourrais simplifier ton algo en utilisant les Regex.
Tu peux regarder cet article pour t'inspirer si tu veux : Validating That Passwords Are Complex (Visual Basic)
- Proposé comme réponse Jordane Aucagne jeudi 15 décembre 2016 07:55
- Marqué comme réponse Nina ZaekovaMicrosoft contingent staff, Moderator mercredi 21 décembre 2016 14:54
-