Khalem escribió:Deberías hacer lo siguiente:
El servidor genera la clave al recibir el paquete de la conexion, la envía a la conexión con el cliente, el cliente la responde, el servidor verifica o puede hacerlo el mismo cliente, y esta de ser la misma genera la conexión correctamente...
Usarás Cases, Ifs, Funciones y no mucho más... Dejanos la base sino que lo miramos más a fondo
mira yo habia echo algo asi
en el cliente ene l loginexistingchar puse algo asi
- dim random as byte
- dim clave as string
-
- random = randomnumber(1, 5)
-
- if random = 1 then
- 'rot13("ks1qUemesalTeASlAeNCripTaCiOnjEJjorKerjtJERTehrEJR")
- clave="uNacLaveSecreta"
- elseif random = 2 then
- clave="uNacLaveSecreta1"
- elseif random = 3 then
- clave="uNacLaveSecreta2"
- elseif random = 4 then
- clave="uNacLaveSecreta3"
- elseif random = 5 then
- clave="uNacLaveSecreta4"
- end if
si tenes algún algoritmo de encriptación en ves de clave="asdajsdja" pone clave=funcion("asdajsdja")
y arriba de
- call .writeasciistring(username) 'creo qe era asi fijate en el writeloginexistingchar
pones
- call .writeasciistring(clave)
- call .writebyte(random)
en el handleloginexistingchar del servidor arriba de
puse algo asi
- dim clave as string
- dim random as byte
y arriba de
- username = buffer.readasciistring() 'nose si era si no tengoe l vb aca
pone
- clave = buffer.readasciistring()
- random = buffer.readbyte()
desp la linea que llama al connectuser
- call connectuser(userindex, username , userpass ....
le agregas 2 parametros
osea si antes era
- call connectuser(userindex, username , userpass)
ahora tendria que qedar
- call connectuser(userindex, username , userpass,clave, random)
despues buscas el sub connectuser
y lo mismo haces con los parametros
es algo asi
- sub connectuser(byval userindex as integer, byref username as string...
y le agregas esto (antes de terminar el parentesis)
- byval clave as string, byval random as byte
y adentro de ese sub mete algoa si
- if random = 1 and clave <> "uNacLaveSecreta" then
- call writeerrormsg(userindex, "blabla no chitees")
- call flushbuffer(userindex)
- call closesocket(userindex)
- elseif random = 2 and clave <> "uNacLaveSecreta1" then
- call writeerrormsg(userindex, "blabla no chitees")
- call flushbuffer(userindex)
- call closesocket(userindex)
- elseif random = 3 and clave <> "uNacLaveSecreta2" then
- call writeerrormsg(userindex, "blabla no chitees")
- call flushbuffer(userindex)
- call closesocket(userindex)
- elseif random = 4 and clave <> "uNacLaveSecreta3" then
- call writeerrormsg(userindex, "blabla no chitees")
- call flushbuffer(userindex)
- call closesocket(userindex)
- elseif random = 5 and clave <> "uNacLaveSecreta4" then
- call writeerrormsg(userindex, "blabla no chitees")
- call flushbuffer(userindex)
- call closesocket(userindex)
- end if
y we ahi es dinamica pero re pete xd ante sniffers te recomiendo en la clave poner algo del login qe se yo
password o algo asi xd ingeniatelas te deje la base ahora completalo y/o modificalo a tu gusto
te recomiendo usar una encriptacion para la clave, suerte che
maTih.-