20221303 实验三报告

SHDDl 2023-04-20 12:28:10

学号 2022-2023-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2213
姓名: 李炜宇
学号:20221303
实验教师:王志强
实验日期:2023年4月13日
必修/选修: 公选课

1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。

  1. 实验过程及结果
    服务器
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)

实验结果:
服务器

img


客户端

img

上传码云

img

img

  1. 实验过程中遇到的问题和解决过程
    问题1:遇到了 [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次 的问题
    问题1解决方案:在csdn上找到,在任务管理器里将其他的pycharm项目关掉

参考资料

...全文
38 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

144

社区成员

发帖
与我相关
我的任务
社区描述
开展Python教学和技术交流
python 高校 北京·丰台区
社区管理员
  • blackwall0321
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧