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
20192204李龙威 2019-2020-2 《Python程序设计》实验三报告的更多相关文章
- PYTHON程序设计实验
Python程序设计实验报告一: 熟悉IDLE和在线编程平台 安徽工程大学 Python程序设计实验报告 班级 物流191 姓名 邹缕学号 3190505117成绩 ▁▁▁ 日期 2020.3.5 指 ...
- Python程序设计实验报告二:顺序结构程序设计(验证性实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩 日期 2020.3.22 指导老师 修宇 [实验 ...
- Python程序设计实验报告一:熟悉IDLE和在线编程平台
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 崔攀 学号3190505136 成绩_____ 日期 2020.3.8 指导老师 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- Python程序设计实验报告四:循环结构程序设计(设计型实验)
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.8 指导老师 修宇 [实验名称 ...
- Python程序设计实验报告三:分支结构程序设计
安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2020.4.5 指导老师 修宇 [实验目的 ...
- 20192113 2020-2021-2 《Python程序设计》实验三报告
20192113 2020-2021-2 <Python程序设计>实验三报告 课程:<Python程序设计> 班级: 1921 姓名: 衣丽莎 学号:20192113 实验教师 ...
- 20172310 2017-2018-2 《程序设计与数据结构》实验三报告(敏捷开发与XP实践)
20172310 2017-2018-2 <程序设计与数据结构>实验三报告(敏捷开发与XP实践) 课程:<程序设计与数据结构> 班级: 1723 姓名: 仇夏 学号:20172 ...
- 20192204李龙威 2019-2020-2 《Python程序设计》实验一报告
20192204 2019-2020-2 <Python程序设计>实验一报告 课程:<Python程序设计> 班级: 1922 姓名: 李龙威 学号:20192204 实验教师 ...
随机推荐
- 「2022」打算跳槽涨薪,必问面试题及答案 -- ECMAScript 篇
起点低怕什么,大不了加倍努力.人生就像一场马拉松比赛,拼的不是起点,而是坚持的耐力和成长的速度.只要努力不止,进步也会不止. 1.ECMAScript 与 JavaScript 的关系? ECMA(E ...
- 取代 Mybatis Generator,这款代码生成神器配置更简单,开发效率更高!
作为一名 Java 后端开发,日常工作中免不了要生成数据库表对应的持久化对象 PO,操作数据库的接口 DAO,以及 CRUD 的 XML,也就是 mapper. Mybatis Generator 是 ...
- Elasticsearch使用系列-Docker搭建Elasticsearch集群
Elasticsearch使用系列-ES简介和环境搭建 Elasticsearch使用系列-ES增删查改基本操作+ik分词 Elasticsearch使用系列-基本查询和聚合查询+sql插件 Elas ...
- Linux基础:VLAN篇
一.二层基础知识 1.1 vlan介绍 本小节重点: vlan的含义 vlan的类型 交换机端口类型 vlan的不足 1.1.1 vlan的含义 局域网LAN的发展是VLAN产生的基础,因而先介绍一下 ...
- GIL解释器锁 & 进程池与线程池
今日内容 GIL 全局解释器锁(重要理论) 验证 GIL 的存在及功能 验证 python 多线程是否有用 死锁现象 进程池与线程池(使用频率高) IO模型 详细参考: https://www.bil ...
- 数据分析实际案例之:pandas在泰坦尼特号乘客数据中的使用
目录 简介 泰坦尼特号乘客数据 使用pandas对数据进行分析 引入依赖包 读取和分析数据 图形化表示和矩阵转换 简介 1912年4月15日,号称永不沉没的泰坦尼克号因为和冰山相撞沉没了.因为没有足够 ...
- 『无为则无心』Python面向对象 — 59、魔法方法
目录 1.魔法方法__new__() 2.魔法方法__init__() 3.魔法方法__del__() 4.魔法方法__str__()和__repr__() 5.魔法方法__call__() 6.魔法 ...
- BI可视化在线分析工具,推荐这2个BI工具!
一.国外BI----tableau BI平台Tableau帮助企业可视化和理解数据.它使组织能够通过PC或iPad连接,可视化和共享数据.用户可以轻松创建仪表板,发布甚至与同事,合作伙伴和客户共 ...
- C# 2进制、8进制、10进制、16进制...各种进制转换
在.NET Framework中,System.Convert类中提供了较为全面的各种类型.数值之间的转换功能. 其中的两个方法可以轻松的实现各种进制的数值间的转换: Convert.ToInt32( ...
- WPF中使用MVVM进行multibinding
背景描述:在Number1和Number2文本框中输入数字后,在Answer文本框中会按照下图所示显示. xaml代码: <Window.Resources> <local:MyVa ...