Update receiver_ui.py

main
poriwfmve 7 months ago
parent 7ea485a30d
commit 61f351562b

@ -26,7 +26,7 @@ from PyQt5.QtWidgets import QMessageBox,QFileDialog
#import sm2random #import sm2random
from OpenSSL import crypto from OpenSSL import crypto
class Ui_MainWindow(object): class Ui_MainWindow(object):
def setupUi(self, MainWindow,client): def setupUi(self, MainWindow,receiver):
MainWindow.setObjectName("MainWindow") MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 602) MainWindow.resize(800, 602)
self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget = QtWidgets.QWidget(MainWindow)
@ -69,6 +69,7 @@ class Ui_MainWindow(object):
self.mode = "" self.mode = ""
self.algorithm = "" self.algorithm = ""
self.enc_key = "" self.enc_key = ""
self.receiver = receiver
#打开文件选择对话框 #打开文件选择对话框
QMessageBox.information(MainWindow, "提示", "请选择你的私钥文件") QMessageBox.information(MainWindow, "提示", "请选择你的私钥文件")
@ -104,11 +105,12 @@ class Ui_MainWindow(object):
#接收信封并解封保存,加密后的对称密钥,密文,签名 #接收信封并解封保存,加密后的对称密钥,密文,签名
data = b"" data = b""
while True: while True:
envelope_dict = self.client.recv(1024) sender_socket = self.receiver.accept()
envelope_dict = sender_socket.recv(1024)
if not envelope_dict: if not envelope_dict:
break break
data += envelope_dict data += envelope_dict
# print(data.decode()) print(data.decode())
envelope_dict = json.loads(data.decode('utf-8')) envelope_dict = json.loads(data.decode('utf-8'))
self.signature= envelope_dict['signature'] self.signature= envelope_dict['signature']
self.encrypted_text = envelope_dict['encrypted_text'] self.encrypted_text = envelope_dict['encrypted_text']
@ -120,25 +122,6 @@ class Ui_MainWindow(object):
self.decrypt_key() self.decrypt_key()
self.decrypt() self.decrypt()
self.client.close() 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): def decrypt_key(self):
#使用rsa私钥解密对称密钥self.enc_key,赋给self.key #使用rsa私钥解密对称密钥self.enc_key,赋给self.key
cipher_rsa = PKCS1_OAEP.new(self.private_key) cipher_rsa = PKCS1_OAEP.new(self.private_key)
@ -218,19 +201,10 @@ if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv) app = QtWidgets.QApplication(sys.argv)
window = QtWidgets.QMainWindow() window = QtWidgets.QMainWindow()
ui = Ui_MainWindow() 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() 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_()) sys.exit(app.exec_())
Loading…
Cancel
Save