import socket
import random
from sys import argv
def main():
s = socket.socket()
s.bind(("localhost", int(argv[1])))
s.listen(1)
Usuarios = open(\'users.txt\',\'r\')
users = dict()
for i in Usuarios.readlines():
i = i.strip()
j = i.split(\',\')
users[j[0]] = (int(j[1]), int(j[2]))
print users
while True:
sc, addr = s.accept()
envio = ""
recibido = sc.recv(1024)
print "Recibido:", recibido
if recibido == "quit":
break
elif recibido in users:
usuario = recibido
x = random.randrange(1,1000) % users[ usuario ][ 1 ]
print x
print usuario, " se conecto al servidor."
sc.sendall(str(f(x)))
abandonShip = False
while True:
recibido = sc.recv(1024)
recibido = recibido.split(\',\')
if recibido[0] == usuario:
aut = autentificacion( float( recibido[1] ), float(users[ usuario ][ 0 ]), float(users[ usuario ][ 1 ]) )
print aut
print f(x)
if aut == float(recibido[1]):
sc.sendall("OK")
else:
sc.sendall("Oh!, the autentification is wrong !")
abandonShip = True
break
else:
sc.sendall("Hey, The user that you give is wrong.!")
abandonShip = True
break
if abandonShip:
sc.close()
s.close()
def f(x):
return x * 0.02
def autentificacion(r, e, n):
print "e :",e
print "r :",r
print "n :",n
return ( r ** e ) % n
main()