parent
20adb9a5ea
commit
24ea41aa92
@ -0,0 +1,79 @@
|
|||||||
|
import socket
|
||||||
|
import zipfile
|
||||||
|
import os
|
||||||
|
|
||||||
|
def send_zip(HOST,PORT):
|
||||||
|
# 获取当前文件的绝对路径
|
||||||
|
current_file_path = os.path.abspath(__file__)
|
||||||
|
|
||||||
|
# 获取当前文件的目录路径
|
||||||
|
current_directory = os.path.dirname(current_file_path)
|
||||||
|
|
||||||
|
# 使用相对路径构建其他文件的路径
|
||||||
|
file_path = os.path.join(current_directory, 'file.txt.encrypted')
|
||||||
|
encrypted_key_path = os.path.join(current_directory, 'encrypted_symmetric_key.bin')
|
||||||
|
Apub_key_path = os.path.join(current_directory, 'A_public.txt')
|
||||||
|
signature_path = os.path.join(current_directory, 'signature.txt')
|
||||||
|
output_zip_path = os.path.join(current_directory, 'encrypted_data.zip')
|
||||||
|
|
||||||
|
# 创建一个 ZIP 文件
|
||||||
|
with zipfile.ZipFile(output_zip_path, 'w') as zip_file:
|
||||||
|
# 将文件.txt添加到ZIP文件中
|
||||||
|
zip_file.write(file_path, arcname='file.txt.encrypted')
|
||||||
|
|
||||||
|
# 将A的公钥添加到ZIP文件中
|
||||||
|
zip_file.write(Apub_key_path, arcname='A_public.txt')
|
||||||
|
|
||||||
|
# 将加密后的对称密钥添加到ZIP文件中
|
||||||
|
zip_file.write(encrypted_key_path, arcname='encrypted_symmetric_key.bin')
|
||||||
|
|
||||||
|
# 将数字签名添加到ZIP文件中
|
||||||
|
zip_file.write(signature_path, arcname='signature.txt')
|
||||||
|
|
||||||
|
print("打包封装完成:", output_zip_path)
|
||||||
|
|
||||||
|
# 设置服务器的IP地址和端口号
|
||||||
|
# HOST = host
|
||||||
|
# PORT = port
|
||||||
|
|
||||||
|
# 客户端连接服务器
|
||||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as client_socket:
|
||||||
|
client_socket.connect((HOST, PORT))
|
||||||
|
|
||||||
|
# 读取要传输的文件
|
||||||
|
with open(output_zip_path, 'rb') as file:
|
||||||
|
file_data = file.read()
|
||||||
|
|
||||||
|
# 发送文件数据
|
||||||
|
client_socket.sendall(file_data)
|
||||||
|
print("文件发送完成")
|
||||||
|
|
||||||
|
def receive_Bpubkey(HOST,PORT):
|
||||||
|
# 设置服务器的IP地址和端口号
|
||||||
|
# HOST = '10.34.52.156'
|
||||||
|
# PORT = 22222
|
||||||
|
|
||||||
|
# 创建一个socket对象
|
||||||
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as server_socket:
|
||||||
|
# 绑定IP和端口
|
||||||
|
server_socket.bind((HOST, PORT))
|
||||||
|
# 开始监听传入的连接
|
||||||
|
server_socket.listen()
|
||||||
|
|
||||||
|
print(f"等待客户端连接...")
|
||||||
|
conn, addr = server_socket.accept() # 接受客户端的连接
|
||||||
|
print(f"已连接:{addr}")
|
||||||
|
|
||||||
|
with conn:
|
||||||
|
# 从客户端接收数据
|
||||||
|
file_data = conn.recv(1024) # 假设每次接收的数据大小为1024字节
|
||||||
|
with open('B_public.txt', 'wb') as file:
|
||||||
|
while file_data:
|
||||||
|
file.write(file_data)
|
||||||
|
file_data = conn.recv(1024)
|
||||||
|
print("文件接收完成")
|
||||||
|
|
||||||
|
# receive_Bpubkey()
|
||||||
|
|
||||||
|
# send_zip()
|
||||||
|
|
Loading…
Reference in new issue