diff --git a/receiver_ui.py b/receiver_ui.py index 5279799..95a60bd 100644 --- a/receiver_ui.py +++ b/receiver_ui.py @@ -26,6 +26,7 @@ from PyQt5.QtWidgets import QMessageBox,QFileDialog import rsa #import sm2random from OpenSSL import crypto +import pickle class Ui_MainWindow(object): def setupUi(self, MainWindow,receiver): MainWindow.setObjectName("MainWindow") @@ -72,7 +73,6 @@ class Ui_MainWindow(object): self.enc_key = "" #继承连接实例 self.receiver = receiver - #打开文件选择对话框 QMessageBox.information(MainWindow, "提示", "请选择你的私钥文件") path=QFileDialog.getOpenFileName()[0] @@ -107,12 +107,15 @@ class Ui_MainWindow(object): data = b"" while True: sender_socket,addr = self.receiver.accept() - envelope_dict = sender_socket.recv(1024) - if not envelope_dict: - break - data += envelope_dict - print(data.decode()) - envelope_dict = json.loads(data.decode('utf-8')) + while True: + envelope_dict = sender_socket.recv(1024) + if not envelope_dict: + break + data += envelope_dict + break + #将字节流转换为字典 + print(data) + envelope_dict = pickle.loads(data) self.signature= envelope_dict['signature'] self.encrypted_text = envelope_dict['encrypted_text'] self.enc_key = envelope_dict['enc_key'] @@ -122,7 +125,7 @@ class Ui_MainWindow(object): self.iv= envelope_dict['iv'] self.decrypt_key() self.decrypt() - self.client.close() + self.receiver.close() def decrypt_key(self): #使用rsa私钥解密对称密钥self.enc_key,赋给self.key self.key = rsa.decrypt(self.enc_key, self.private_key) @@ -132,8 +135,6 @@ class Ui_MainWindow(object): # self.mode = self.mode_box.currentText() self.algorithm = "AES" self.mode = "CBC" - with open("aeskey.txt",'rb') as f: - self.key = "1234567890abcdef".encode("utf-8") if self.algorithm=="AES": if self.mode=="CBC": self.mode = AES.MODE_CBC @@ -143,7 +144,7 @@ class Ui_MainWindow(object): cryptor = AES.new(self.key, self.mode, self.key) self.plain_text = cryptor.decrypt(a2b_hex(self.encrypted_text)) #print(plain_text) - plaintext = b2a_hex(plain_text.rstrip(b'\0')).decode("utf-8") + plaintext = b2a_hex(self.plain_text.rstrip(b'\0')).decode("utf-8") self.textBrowser.append(plaintext) elif self.mode=="ECB":