20222127 2022-2023-2 《Python程序设计》实验三报告

m0_74728948 2023-04-20 22:07:37

课程:《Python程序设计》
班级:2221
姓名:李新卓
学号:20222127
实验教师:王志强
实验日期:2023年4月13日
必修/选修:公选课

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

# -*- 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)

import os
import socket

from DesModule import des_encrypt, des_descrypt

if os.path.exists("C:\\Users\\84690\\PycharmProjects\\pythonProject1\\lxz"):
    file1 = open("lxz", 'r+')
else:
    file1 = open("lxz", 'w+')
    file1.write("howsitgoing")
    file1.seek(0)
howsitgoing = file1.readline()
ciphertext = des_encrypt(howsitgoing, "12345")

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("localhost", 8000))
s.sendall(ciphertext.encode())
data = s.recv(1024)
print("解密前", data.decode())
plaintext = des_descrypt(data, "lxz12345")
print("从服务器接受的数据是:", plaintext)
file1.write(plaintext)
file1.close()
s.close()

import socket
import os
from DesModule import *

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("localhost", 8000))
s.listen()
conn, address = s.accept()
data = conn.recv(1024)
ciphertext = des_encrypt("howsitgoing", "12345678")
print("解密前", data.decode())
plaintext = des_descrypt(data, "12345678")
print("来自客户端的信息是", plaintext)
if os.path.exists("C:\\Users\\84690\\PycharmProjects\\pythonProject1\\lxz"):
    file = open("lxz", 'a+')
    file.write(plaintext)
else:
    file = open("lxz", 'w+')
    file.write(plaintext)
    file.seek(0)
file.close()
conn.sendall(ciphertext.encode())

上传gitee:

img

  1. 实验过程中遇到的问题和解决过程
    问题1:不会加密操作
    问题1解决方案:上网查阅资料,与同学交流沟通
    问题2:目标计算机拒绝连接
    问题2解决方案:关闭防火墙
    ...
...全文
27 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

144

社区成员

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

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