[P] Generador de Password VB.NET

Iniciado por Dunkansdk, 14 Octubre 2012, 08:13 AM

0 Miembros y 1 Visitante están viendo este tema.

Dunkansdk

Tengo un error en el algoritmo y no logro discernir cual es!!! espero la ayuda de todos jajaja

Código (vbnet) [Seleccionar]
Module PRUEBA

   Private DChar() As Char = {
       "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t",
       "u", "v", "w", "x", "y", "z",
       "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",
       "U", "V", "W", "X", "Y", "Z",
       "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
   }

   Dim chrIntent As Integer
   Dim chrPos As Integer

   Public Sub initPasswordModule()

       chrIntent = 1
       chrPos = 0

   End Sub

   Public Sub newGetPassword()
       Dim BruteSTR(UBound(DChar)) As Char
       Dim PasswordCracked As Boolean

       PasswordCracked = True
       BruteSTR(0) = DChar(0)

       Do While PasswordCracked
           GenerateString(BruteSTR, chrPos, chrIntent)
           Debug.Print(BruteSTR & " - ")
           PasswordCracked = False
           Application.DoEvents()
       Loop

   End Sub

   Private Sub GenerateString(ByRef StrChar() As Char, ByRef cPos As Integer, ByRef cIntent As Integer)
       Dim lastCaracterIndex As Integer
       lastCaracterIndex = cIntent Mod Len(DChar)

       If lastCaracterIndex = 0 Then ' Llegamos al ultimo caracter del array => agregamos un nuevo caracter
           cPos = cPos
           StrChar(cPos) = DChar(0)
       Else
           StrChar(cPos) = DChar(lastCaracterIndex) ' Cambiamos el ultimo caracter por el siguiente
       End If

       cIntent = cIntent + 1

   End Sub

End Module


Aquí el error: (Ventana de Inmediato, debug)

Citar- b - c - d - e - f - g - h - i - j - k - l - m - n - o - p - q - r - s - t - u - v - w - x - y - z - A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - aa - ab - ac - ad - ae - af - ag - ah - ai - aj - ak - al - am - an - ao - ap - aq - ar - as - at - au - av - aw - ax - ay - az - aA - aB - aC - aD - aE - aF - aG - aH - aI - aJ - aK - aL - aM - aN - aO - aP - aQ - aR - aS - aT - aU - aV - aW - aX - aY - aZ - a0 - a1 - a2 - a3 - a4 - a5 - a6 - a7 - a8 - a9 - a - a - a - a - a - a - a - a - a - a - a

Véase los últimos caracteres en rojo. Muchas gracias a todos, espero que me puedan ayudar.

Utilizo VB2010

Keyen Night

#1
¿Quieres hacer un modulo para Crackear un Password?, si es así hay muchas formas más fáciles de hacerlo ;)

Haciendo uso de los valores ASCII y la longitud del Password puedes intentar todas las posibilidades, además una contraseña de números y letras minúsculas y mayúsculas de un Length = 8, por ejemplo, puede ser crackeada en menos de un día.

Si por el contrario intentas hacer una contraseña segura, puedes validarla por expresiones regulares, que contenga letras minúsculas, mayúsculas, números y símbolos en la proporción que desees.
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

Dunkansdk

Eso lo se! Quiero buscar la forma de solucionar mi problema actual!

MCKSys Argentina

Cita de: Dunkansdk en 15 Octubre 2012, 01:50 AM
Eso lo se! Quiero buscar la forma de solucionar mi problema actual!

Me parece que tu problema es la forma en que intentas solucionar el tema.

Creo que te conviene repensar el algoritmo (la parte de generación del string de password).

Podrías usar algo de lo comentado por Keyen Night...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."