144
社区成员
发帖
与我相关
我的任务
分享学号 2022-2023-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2213
姓名: 李炜宇
学号:20221303
实验教师:王志强
实验日期:2023年4月13日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
import socket
import os
import DesModule
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
if os.path.exists("Password"):
file = open("Password","r+")
else:
file = open("Password","w+")
file.write("hihihi.")
file.seek(0)
text=DesModule.des_encrypt(file.readline(),"12345678")
s.bind(("192.168.34.135",8001))
s.listen()
conn,address=s.accept()
data = conn.recv(1024)
print("发送的消息:",DesModule.des_descrypt(data.decode(),"12345678"))
conn.sendall(text.encode())
file.close()
s.close()
客户端
import socket
import os
import DesModule
if os.path.exists("Password1"):
file1 = open("Password1", "r+")
else:
file1 = open("Password1", "w+")
file1.write("hihihi.")
file1.seek(0)
text = DesModule.des_encrypt(file1.readline(), "12345678")
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.56.1",8000))
s.sendall(text.encode())
data = s.recv(1024)
plaintext = DesModule.des_descrypt(data.decode(), "12345678")
print("收到的内容是:", plaintext)
file1.close()
s.close()
加密算法
# -*- coding: utf-8 -*-
# 文件名: DesModule
# 描 述:
# 作 者: besti
# 日 期: 2023/4/11
# Have you ever seen Los Angeles at 4 a.m?
from pyDes import *
import binascii
def des_encrypt(s, KEY):
secret_key = KEY
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s, padmode=PAD_PKCS5)
return binascii.b2a_hex(en).decode()
def des_descrypt(s, KEY):
secret_key = KEY
iv = secret_key
k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
return de.decode()
if __name__ == "__main__":
ciphertext = des_encrypt("hello, world!", "12345678")
print("密文:",ciphertext)
plaintext = des_descrypt(ciphertext, "12345678")
print("解密后的明文:", plaintext)
实验结果:
服务器


上传码云


参考资料