20192204李龙威 2019-2020-2 《Python程序设计》实验三报告

20192204李龙威 2019-2020-2 《Python程序设计》实验三报告

课程:《Python程序设计》
班级: 1922
姓名: 李龙威
学号:20192204
实验教师:王志强
实验日期:2020年5月17日
必修/选修: 公选课

1.实验内容

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

2. 实验过程及结果

一、实验要求

(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
(2)要求包含文件的基本操作,例如打开和读写操作。
(3)要求发送方从文件读取内容,加密后并传输;接收方收到密文并解密,保存在文件中。
(4)程序代码托管到码云

二、实验原理及过程:

本实验采用python的加密库PyCrytodome的aes算法进行加密,首先客户端程序读取本机中的.txt文档并用可指定的key和iv对文档中的内容进行加密,然后创建套接字将加密文件传输到服务器端,服务器端接收到密文后用key和iv对从客户端接收到的密文进行解密,解密完毕后将解密后的数据先解码然后将其写入到一个新创建的文件中,关闭文件,关闭连接,传输完毕,实现了本实验中上述的四个要求。

三、代码截图

1.客户端代码截图

2.服务器端代码截图

3.服务器端实验结果截图

4.传输的文件效果截图


四、代码上传到码云

客户端码云链接

https://gitee.com/king_li_long/python/commit/f7843bbbb083ece2ff4d3c38fc9fd676a1f778f3

服务器端码云链接

https://gitee.com/king_li_long/python/commit/412d524ef496eee632ba0af6323dfb9de3f80381

其他(感悟、思考等)

学习python应多做实践,不做实验进行实践就难以掌握新的知识,从发现MD5加密方法难以解密,到des的加密传输尝试失败,最终尝试aes加密成功,现在我已基本掌握通过aes对socket的传输进行加密

参考资料

常见加密方式和python实现
https://www.jianshu.com/p/4ba20afacce2

posted @ 2020-05-17 17:07  里龙王。  阅读(348)  评论(0编辑  收藏  举报