Skip to content

Commit 7171e90

Browse files
committed
Adicionado: comunicação RSA
1 parent 00510c9 commit 7171e90

File tree

1 file changed

+15
-12
lines changed

1 file changed

+15
-12
lines changed

servidor-operacoes2/operacoes2.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33

44
import multiprocessing
55
import settings
6+
import pickle
67

78
from socket import *
89
from threading import Thread
910
from multiprocessing import Process, Manager
11+
from Crypto.PublicKey import RSA
12+
from Crypto.Util import randpool
1013

1114

1215
class Operacoes2Servidor:
@@ -19,17 +22,14 @@ def __init__(self, ip):
1922
self.server_socket.listen(5)
2023
self.MAX_PACOTE = 1024
2124

25+
blah = randpool.RandomPool()
26+
self.RSAKey = RSA.generate(1024, blah.get_bytes)
27+
self.RSAPubKey = self.RSAKey.publickey()
28+
2229
def enviar(self, valor, endereco):
23-
aux = 0
24-
#tam = len(valor)
25-
#if tam > self.MAX_PACOTE:
26-
# for i in xrange(tam / self.MAX_PACOTE):
27-
# pacote = valor[i*self.MAX_PACOTE:(i+1)*self.MAX_PACOTE]
28-
# self.server_socket.sendto(pacote, endereco)
29-
#else:
30-
# self.server_socket.sendto(valor, endereco)
3130
print '\033[0;32mResultado: \033[1;33m{}\033[0m\n'.format(valor)
32-
self.conn.send(str(valor))
31+
valor = self.clientePubKey.encrypt(str(valor), 32)[0]
32+
self.conn.send(valor)
3333
self.conn.close()
3434

3535
def soma(self, x, y):
@@ -59,10 +59,13 @@ def levenshtein(self, a, b):
5959
return str(current[n])
6060

6161
def iniciar(self):
62-
while(1):
62+
while 1:
6363
self.conn, addr = self.server_socket.accept()
64-
recv_data = self.conn.recv(1024)
65-
data = recv_data.split()
64+
self.clientePubKey = pickle.loads(self.conn.recv(1024))
65+
self.conn.send(pickle.dumps(self.RSAPubKey))
66+
67+
data = self.RSAKey.decrypt(self.conn.recv(1024))
68+
data = data.split()
6669
args = '\033[0;32m e \033[1;33m'.join(data[1:])
6770
print '\033[1;33m{}\033[0;32m de \033[1;33m{}\033[0m'.format(data[0], args)
6871

0 commit comments

Comments
 (0)