From 61f351562b8275a03f66440c5c3716e8bbfe6beb Mon Sep 17 00:00:00 2001 From: poriwfmve <1321176382@qq.com> Date: Tue, 24 Dec 2024 20:35:16 +0800 Subject: [PATCH] Update receiver_ui.py --- receiver_ui.py | 46 ++++++++++------------------------------------ 1 file changed, 10 insertions(+), 36 deletions(-) diff --git a/receiver_ui.py b/receiver_ui.py index 847da35..9907e70 100644 --- a/receiver_ui.py +++ b/receiver_ui.py @@ -26,7 +26,7 @@ from PyQt5.QtWidgets import QMessageBox,QFileDialog #import sm2random from OpenSSL import crypto class Ui_MainWindow(object): - def setupUi(self, MainWindow,client): + def setupUi(self, MainWindow,receiver): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 602) self.centralwidget = QtWidgets.QWidget(MainWindow) @@ -69,6 +69,7 @@ class Ui_MainWindow(object): self.mode = "" self.algorithm = "" self.enc_key = "" + self.receiver = receiver #打开文件选择对话框 QMessageBox.information(MainWindow, "提示", "请选择你的私钥文件") @@ -104,11 +105,12 @@ class Ui_MainWindow(object): #接收信封并解封保存,加密后的对称密钥,密文,签名 data = b"" while True: - envelope_dict = self.client.recv(1024) + sender_socket = self.receiver.accept() + envelope_dict = sender_socket.recv(1024) if not envelope_dict: break data += envelope_dict - # print(data.decode()) + print(data.decode()) envelope_dict = json.loads(data.decode('utf-8')) self.signature= envelope_dict['signature'] self.encrypted_text = envelope_dict['encrypted_text'] @@ -120,25 +122,6 @@ class Ui_MainWindow(object): self.decrypt_key() self.decrypt() self.client.close() - def receive(self): - #接收信封并解封保存,加密后的对称密钥,密文,签名 - data = b"" - while True: - envelope_dict = self.client.recv(1024) - if not envelope_dict: - break - data += envelope_dict - # print(data.decode()) - envelope_dict = json.loads(data.decode('utf-8')) - self.signature= envelope_dict['signature'] - self.encrypted_text = envelope_dict['encrypted_text'] - self.enc_key = envelope_dict['enc_key'] - self.mode= envelope_dict['mode'] - self.algorithm= envelope_dict['algorithm'] - if self.mode=="CBC": - self.iv= envelope_dict['iv'] - self.decrypt_key() - self.decrypt() def decrypt_key(self): #使用rsa私钥解密对称密钥self.enc_key,赋给self.key cipher_rsa = PKCS1_OAEP.new(self.private_key) @@ -218,19 +201,10 @@ if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QMainWindow() ui = Ui_MainWindow() - client= socket.socket(socket.AF_INET,socket.SOCK_STREAM) - ui.setupUi(window,client) + #接收方建立连接 等待发送方连接 + receiver_conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + receiver_conn.bind(('localhost', 8888)) + receiver_conn.listen(5) + ui.setupUi(window,receiver_conn) window.show() - #发起连接 - while True: - try: - ui.client.settimeout(5) - ui.client.connect(('127.0.0.1', 5555)) - except socket.timeout: - ui.textBrowser.append("[!] Connection timed out, retrying...") - except socket.error as e: - ui.textBrowser.append(f"[!] Failed to connect to server: {e}") - break - finally: - ui.client.close() sys.exit(app.exec_()) \ No newline at end of file