Click here to Skip to main content
15,895,370 members
Articles / Programming Languages / Visual Basic
Tip/Trick

Validate password strength on the server side

Rate me:
Please Sign up or sign in to vote.
4.00/5 (1 vote)
9 Jan 2010CPOL 10.7K   2  
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)


Written By
-
Turkey Turkey
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
-- There are no messages in this forum --