Passwortstärke Ermitteln

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Passwortstärke Ermitteln

    Guten Tag,
    ich habe ein weile Gesucht habe aber auch per google sehr wenig dazu gefunden in .net, ich möchte eine Passwortstärke ermitteln, dabei möchte ich wie folgt arbeiten:


    ---> Edit : Sry das VB Code Tag zerschießt mir alles


    VB.NET-Quellcode

    1. Dim Stärke As Integer = 0
    2. For Each Buchstabe As Char In TxtPassword.Text
    3. ' Ab hier beginnt Pseudo Code
    4. If Buchstabe = kleinbuchstabe Then
    5. Stärke = Stärke +1
    6. ElseIf Buchstabe = großbuchstabe Then
    7. Stärke = Stärke +1
    8. ElseIf IsNumeric(Buchstabe) = True Then
    9. Stärke = Stärke + 2
    10. ElseIf Buchstabe = Sonderzeichen Then
    11. Stärke = Stärke + 3
    12. Else
    13. 'Für Zeichen die evtl mit [ALT + Zahl] eingegeben wurden oder per Zeichentabelle übergeben wurden
    14. Stärke = Stärke + 5
    15. End If
    16. Stärke = txtPassword.Text.Count * 1,5
    17. ' Ende Pseudo Code
    18. Next



    Ich möchte nun wissen ob es eventuell Funktionen gibt die ich nutzen kann um zu Prüfen ob es ein Sonderzeichen, ein Großbuchstabe oder ein Kleinbuchstabe, die für numerisch kenne ich ja bereits. Außerdem sollte ich einen Aspekt der Passwortstärke vergessen haben, bitte ich drum diesen mir mitzuteilen :)

    Edit by der_Kurt:
    * VB-Tags eingefügt, Code formatiert *

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „der_Kurt“ ()

    z.b. so:

    VB.NET-Quellcode

    1. dim sonder as string="§$%&/()" 'hier einfach deine sonderzeichen einfügen
    2. for each c as char in password
    3. if sonder.contains(c) then
    4. '...
    5. end if
    6. next


    ps du musst das vb tag so benutzen:

    Quellcode

    1. [code=vbnet]
    2. hier deinen code rein

    [/code]
    Ich habe mal vor einiger Zeit diesen gemacht... er listet auch die Kriterien auf und zeigt an, ob diese erfüllt, teilweise erfüllt oder nicht erfüllt sind.

    s. Anhang

    BTW: Dein Ansatz ist -sorry für die Wortwahl- Schrott; es kommt vor allem auf die Zusammensetzung an (Ob von allem Etwas dabei ist). Nicht, welche Zeichen verwendet werden.

    Der Progressbar wird manuell mit GDI gezeichnet.
    Dateien
    Falls du damit C&P meinst, nein.

    Die Kriterien sind bereits so ausformuliert, wie sie auch programmiert sind.
    Du kannst pro kriterium ja eine Funktion vom Typ Double machen, die besagt, wieviel von dem Kriterium erfüllt ist:

    VB.NET-Quellcode

    1. Private Function ZweiAs(pwd As String) As Double
    2. If pwd.ToLower().Contains("a") Then
    3. If pwd.ToLower().Replace("a", "AB").Length - pwd.Length > 1 Then Return 1.0 Else Return 0.5
    4. Else
    5. Return 0.0
    6. End If
    7. End Function


    Dann noch eine Gewichtung für jedes Krit (in max. Punkten)

    mit

    Punkte += ZweiAs(txtPassword.Text) * Max_Punkte_ZweiAs

    Und also Obergrenze dann Max_Punkte_XYZ addieren
    Dann Punkte / Max_Punkte_Alle_Zusammen * 100 = Sicherheit in Prozent