Password VB6

Buenas! Necesito hacer en visual basic una validación de contraseña, pero lo que necesito en si, es validarla al momento que el usuario la crea. Por ejemplo tengo un form con dos txt, uno para colocar el usuario y otro el pass, el tema es que si el usuario coloca un pass de números repetidos (1111) o letras (aaaa) debe salir un msgbox que diga que el pass debe ser más complejo. Y no se cómo comprobar si una misma tecla se repitió 4 veces.
Desde ya muchas gracias! Saludos!
Respuesta
1
He creado el siguiente ejemplo en el cuál se asume que tienes don controles, un TextBox [llamado Text1] y un CommandButton [llamado Command1] colocados en un formulario; se analiza la contraseña al presionar el botón [evento clic del CommandButton].
Option Explicit
Private Sub Command1_Click()
    'matriz dinámica
    Dim Matriz() As String
    'se puede establecer el número _
    de caracteres que se pueden repetir
    Const REPETICIONES_PERMITIDAS = 4
    'longitud de la cadena de texto
    Dim Longitud As Integer
    'variable usada en los ciclos
    Dim i As Integer
    'cuenta el número de caracteres _
    repetidos consecutivamente
    Dim Repeticiones As Integer
    With Text1
        Repeticiones = 1
        'verificar la longitud del texto
        Longitud = Len(.Text)
        'redimensionar la matriz de acuerdo _
        A la longitud de la cadena de texto
        ReDim Matriz(Longitud - 1)
        'almacenar cada uno de los caracteres en _
        La matriz
        For i = 0 To Longitud - 1
            .SelStart = i
            .SelLength = 1
            Matriz(i) = .SelText
        Next i
        'ciclo que compara los caracteres _
        repetidos consecutivamente
        For i = 0 To Longitud - 2
            'compara un caracter con el siguiente
            If Matriz(i) = Matriz(i + 1) Then
                'si son iguales incrementa las repeticiones
                Repeticiones = Repeticiones + 1
                'verifica que el número de repeticiones _
                Actuales sea igual al número de repeticiones _
                Permitidas por el sistema y también verifica _
                Que la longitud sea igual al número de repeticiones _
                Permitidas por el sistema [por ejemplo sí se permiten _
                Las contraseñas "asdf1111" y "a1eeee3r" pero no se _
                Permiten "1111" y "eeee"]
                If Repeticiones = REPETICIONES_PERMITIDAS And _
                Longitud = REPETICIONES_PERMITIDAS Then
                    MsgBox "¡Contraseña no segura!", vbExclamation, "Error"
                End If
            Else
                'si no se repiten 4 caracteres consecutivamente _
                se reinicia el contador de repeticiones
                Repeticiones = 1
            End If
        Next i
    End With
End Sub
Puedes modificarlo según tus necesidades [por ejemplo puedes colocar el código en un procedimiento y llamarlo en el evento LostFocus de un TextBox]. Espero te haya sido de utilidad, si necesitas una explicación más extensa o te surge una duda, consúltame para solucionarlo.
Saludos desde México. Juan Pablo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas