none
Utilisation des caractères RRS feed

  • 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 Sub

    Sauf 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

    mardi 13 décembre 2016 20:02

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)

    mercredi 14 décembre 2016 08:08

Toutes les réponses

  • Bonjour

    Il devrait y avoir :
    If testmdp.Text.Contains(Majuscules) And

    Etc.
    Je ne sais pas d'où sort ce Dnd.

    mardi 13 décembre 2016 21:40
  • 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)

    mercredi 14 décembre 2016 08:08
  • Super ça marche merci beaucoup! 
    mercredi 14 décembre 2016 12:52