Advertisement
nac13k

Ejemplo Cliente Servidor RSA

Jul 3rd, 2013
2,047
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.63 KB | None | 0 0
  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
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement