document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. ## Codigo basado de "Spckets en Python" en MundoGeek http://goo.gl/qiuRZ
  2. from random import randint
  3. import rsa
  4. import socket
  5.  
  6. def server(host, puerto):
  7.     public = rsa.getKeyFromFile(\'rsa.pub\')
  8.     private = rsa.getKeyFromFile(\'rsa.priv\')
  9.     s = socket.socket()
  10.     s.bind((host, puerto))
  11.     s.listen(1)
  12.     sc, addr = s.accept()
  13.     while True:
  14.         r = randint(1,1000)
  15.         sc.send(str(r))
  16.         respuesta = sc.recv(1024)
  17.         r2 = rsa.D(int(respuesta), public)
  18.         if (r*2) == r2:
  19.             sc.send(\'OK\')
  20.             print \'Esperando mensaje...\'
  21.             recibido = sc.recv(1024)
  22.             m = rsa.decifrar(rsa.D(int(recibido), private))
  23.             print \'El mensaje cifrado es %s el cual representa la frase "%s"\' % (recibido, m)
  24.             break
  25.     else:
  26.         break
  27.     print "adios"
  28.     sc.close()
  29.     s.close()
  30.     return
  31.  
  32. def cliente(host, puerto):
  33.     private = rsa.getKeyFromFile(\'rsa.priv\')
  34.     public = rsa.getKeyFromFile(\'rsa.pub\')
  35.     s = socket.socket()
  36.     s.connect((host, puerto))
  37.     #s.connect(("localhost", 9999))
  38.     while True:
  39.         r = s.recv(1024)
  40.         respuesta = rsa.E(int(r), private)
  41.     respuesta = int(respuesta)*2
  42.         s.send(str(respuesta))
  43.         recibido = s.recv(1024)
  44.         if recibido == \'OK\':
  45.             print \'Conexion Aceptada!!\'
  46.             m = raw_input(\'Mensaje >\')
  47.             ciphertext = rsa.E(rsa.cifrar(m), public)
  48.             s.send(str(ciphertext))
  49.             print \'El mensaje enviado fue "%s" el cual se cifro como %s\' % (m, ciphertext)
  50.             break
  51.     else:
  52.         break
  53.         print "adios"
  54.     s.close()
  55.     return
');