document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import socket
  2. import random
  3. from sys import argv
  4. def main():
  5.     s = socket.socket()
  6.     s.bind(("localhost", int(argv[1])))
  7.     s.listen(1)
  8.     Usuarios = open(\'users.txt\',\'r\')
  9.     users = dict()
  10.     for i in Usuarios.readlines():
  11.         i = i.strip()
  12.         j = i.split(\',\')
  13.         users[j[0]] = (int(j[1]), int(j[2]))
  14.     print users
  15.     while True:
  16.         sc, addr = s.accept()
  17.         envio = ""
  18.         recibido = sc.recv(1024)
  19.         print "Recibido:", recibido
  20.         if recibido == "quit":
  21.             break
  22.         elif recibido in users:
  23.             usuario = recibido
  24.             x = random.randrange(1,1000) % users[ usuario ][ 1 ]
  25.             print x
  26.             print usuario, " se conecto al servidor."
  27.             sc.sendall(str(f(x)))
  28.         abandonShip = False
  29.         while True:
  30.             recibido = sc.recv(1024)
  31.             recibido = recibido.split(\',\')
  32.             if recibido[0] == usuario:
  33.                 aut = autentificacion( float( recibido[1] ), float(users[ usuario ][ 0 ]), float(users[ usuario ][ 1 ]) )
  34.                 print aut
  35.                 print f(x)
  36.                 if aut == float(recibido[1]):
  37.                     sc.sendall("OK")
  38.                 else:
  39.                     sc.sendall("Oh!, the autentification is wrong !")
  40.                     abandonShip = True
  41.                     break
  42.             else:
  43.                 sc.sendall("Hey, The user that you give is wrong.!")
  44.                 abandonShip = True
  45.                 break
  46.             if abandonShip:
  47.                 sc.close()
  48.     s.close()
  49.  
  50. def f(x):
  51.     return x * 0.02
  52.  
  53. def autentificacion(r, e, n):
  54.     print "e :",e
  55.     print "r :",r
  56.     print "n :",n
  57.     return ( r ** e ) % n
  58.  
  59. main()
');