Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / VB

Validate password strength on the server side

4.00/5 (1 vote)
9 Jan 2010CPOL 10.8K  
This code will validate a password on the server side. ;) Imports System.Text.RegularExpressionsPublic Class PasswordAdvisor Enum PasswordScore Blank = 0 VeryWeak = 1 Weak = 2 Medium = 3 Strong = 4 VeryStrong = 5 End Enum ...
This code will validate a password on the server side. ;)
Imports System.Text.RegularExpressions
Public Class PasswordAdvisor
    Enum PasswordScore
        Blank = 0
        VeryWeak = 1
        Weak = 2
        Medium = 3
        Strong = 4
        VeryStrong = 5
    End Enum
    Public Shared Function CheckStrength(ByVal password As String) As PasswordScore

        Dim score As Int32 = 1

        If password.Length < 1 Then
            Return PasswordScore.Blank
        End If

        If password.Length < 4 Then
            Return PasswordScore.VeryWeak
        End If

        If password.Length >= 6 Then
            score = score + 1
        End If
        If password.Length >= 12 Then
            score = score + 1
        End If
        If Regex.IsMatch(password, "/\d+/", RegexOptions.ECMAScript) Then
            score = score + 1
        End If
        If Regex.IsMatch(password, "/[a-z]/", RegexOptions.ECMAScript AndAlso Regex.IsMatch(password, "/[A-Z]/", RegexOptions.ECMAScript)) Then
            score = score + 1
        End If
        If Regex.IsMatch(password, "/.[!,@,#,$,%,^,&,*,?,_,~,-,£,(,)]/", RegexOptions.ECMAScript) Then
            score = score + 1
        End If

        Return CType(score, PasswordScore)

    End Function

End Class

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)