Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: General Dmitry Vergadoski en 29 Agosto 2012, 17:47 pm



Título: necesito ayuda visual basic 6
Publicado por: General Dmitry Vergadoski en 29 Agosto 2012, 17:47 pm
hola a todos, tengo ya programado mi programa que pide una clave y si es correcta me pasa hacia el programa principal, pero necesito el codigo para que el programa no me pida mas la clave cada vez que lo ejecute.
gracias de antemano.


Título: Re: necesito ayuda visual basic 6
Publicado por: seba123neo en 29 Agosto 2012, 20:34 pm
si es un programa sin bases de datos, podes guardar algo en el registro de windows, alguna clave que diga que ya entraste, o en algun archvio .ini, tenes varias opciones, y nunca debes dejar claves hardcodeadas (fijas) en el codigo fuente.

saludos.


Título: Re: necesito ayuda visual basic 6
Publicado por: General Dmitry Vergadoski en 29 Agosto 2012, 21:16 pm
de verdad que no entiendo necesito un ejemplo...


Título: Re: necesito ayuda visual basic 6
Publicado por: Yoghurt en 31 Agosto 2012, 14:18 pm
Cuando el Usuario ingrese la clave tu le haces un "hash" a la clave (para agregar mas seguridad puedes usar tambien otros datos como el del nombre del PC en el hash) y ese "hash" lo guardas en un archivo/registro de windows. Luego con ese "hash" encriptas la clave que usó el usuario y guardas tambien la clave cifrada en el archivo/registro windows.

Cada vez que el usuario abra el programa buscará la clave cifrada en el archivo/registro de windows y la decodificará con el "hash" y si al comprobar la clave resulta verdadera entonces abrirá la ventana principal.

Si queres ir mas profundo aún; una ves decifrada la clave le haces un "hash" a la clave (para agregar mas seguridad puedes usar tambien otros datos como el del nombre del PC en el hash) y si coincide con el "hash" guardado primeramente en el archivo/registro de windows entonces el programa corre en el PC correcto. Esto es útil si al "hash" original le agregas por ejemplo el nombre del PC, entonces al intentar crear el "hash" de comprobación y compararlo con el original se dara cuenta si corre en el PC correcto o corre en el PC del vecino :D



** El algoritmo MD5 esta disponible como módulo .bas en internet con codigo abrierto. Tambien puedes usar tu propio metodo claro, así no sabrán que es lo que has hecho. Aqui obtienes uno: http://www.bullzip.com/md5/vb/md5-vb-class.htm
** El nombre de la PC se puede obtener mediante Apis:
    Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Aqui un ejemplo: http://www.tek-tips.com/faqs.cfm?fid=429



...mmm me pregunto si es seguro este metodo.