estoy haciendo un login de usuario en vb6 y mysql que la cuenta se crea por web y tiene este codigo de encriptacion para el password base64_encode(pack("H*", sha1(utf8_encode($a))))
y necesitaria abrir el usuario desde vb6 descifrando ese password.
este es el codigo q tengo en vb6
Private Sub Command1_Click()
'(hace consulta en db)
Dim strsql As String
Dim rs As ADODB.Recordset
strsql = "SELECT * FROM accounts where access_level=1"
Set rs = cn.Execute(strsql)
If Not rs.EOF Then rs.MoveFirst
While Not rs.EOF
'(si el usuario coincide se va a 1, si no sale el mensaje)
If Text1.Text = rs!login Then GoTo 1
rs.MoveNext
Wend
Set rs = Nothing
MsgBox "no coincide el usuario"
GoTo 0
1:
'(si el password coincide se va a 2, si no sale el mensaje)
If Text2.Text = rs!pass Then GoTo 2
MsgBox "no coincide la pass"
GoTo 0
2:
'(si el usuario ya esta en linea sale un mensaje y se va al 3)
Dim strsqlonline As String
strsqlonline = "SELECT * FROM accounts WHERE login= '" & Text1.Text & "'"
Set rs = cn.Execute(strsqlonline)
If Not rs.EOF Then rs.MoveFirst
While Not rs.EOF
If 1 = rs!online Then GoTo 3
rs.MoveNext
Wend
Set rs = Nothing
'(password y usuario coinciden se va a form2)
Form2.Show
Form1.Hide
Form1.Refresh
GoTo Ends
3:
MsgBox "usuario ya esta en linea"
GoTo 0
0:
Form1.Enabled = True
Form1.Cls
Ends:
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Label3_Click()
Form3.Show
Form1.Hide
End Sub
este lo estoy utilizando pero es en otra celda de la tabla sin encriptacion.
necesitaria ayuda porfas para comparar ese metodo y abrir con la password cifrada. desde ya muchas gracias
modifica el titulo del tema... el mismo debe ser descriptivo al problema expuesto "ayuda porfas" no describe nada sobre que va el post
cambiado! :) perdon gente.
Hola esta linea es con la que se hashea el password.
Misma linea que pusiste:
base64_encode(pack("H*", sha1(utf8_encode($a))))
es imposible deteterminar cual es el passworf original teniendo esa cadena.
El passwor no esta cifrado aclaro. El password de pasa a su hast sha1()...
pack no se que haga pero el resultado se guarda en base64.
En tu formulario de VB tienes que aplicarle el mismo proceso a una cadena y despues comparar si el reultado es el mismo.
Saludos
muchas gracias por responder, podrias ponerme algun ejemplo simple porfas?
Mira tengo mucho que no toco VB a fondo necesitas una funcion que realize sha1 y otra que codifique a base 64
No creo que vengan por defecto posiblemente necesites cargar alguna libreria externa que las contenga.
Entonces una vez que encuentras tus funciones.
Dato de un textbox... Pasar a la funcion sha1 el valor del textbox y esta funcion nos devolvera un hash.
Este valor (En el PHP es procesado por una funcion llamada pack, NUNCA LA HE USADO y no se que haga)
Y el resultado de esa funcion pack es convertido a base 64 y ese es el resultado que se guarda en la Base de Datos del MYSQL.
no tengo en este momento VB instalado por lo que no puedo proporciar un ejemplo.
Te recomendaria que busques primero esas 3 funciones en VB: SHA1, PACK, BASE64_Encode
Saludos