20182213 2019-2020-2 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 1822
姓名: mellivora
学号:20182213
实验教师:王志强
实验日期:2020年5月17日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
进行该实验时首先尝试的是方法是移位加密算法,但是后续考虑到这种加密算法过于简单容易被破解,所以最后采取的是RSA加密算法,安全性高,可操作性强,于是我们调用了python里的rsa模块用来进行加解密实验代码如下:
服务器代码:
客户端代码:
运行结果如下:
客户端运行结果:
服务器运行结果:
3. 实验过程中遇到的问题和解决过程
- 问题1:如何让服务器如何拥有客户端产生的用来解密信息的私钥。
- 问题1解决方案:首先将私钥保存在文件中,然后将存有私钥的文件放置在服务器可以打开的文件夹内,再服务器需要解密信息是取出即可
- 问题2:运行过程中经常出现读取文件失败的提示显示没有文件
- 问题2解决方案:在输入文件名时,需要加入文件格式后缀
其他(感悟、思考等)
加解密算法灵活多样,同时有些时候版本不同,兼容性也不同,需要在之后的学习过程中不断摸索,经过本次实验对于网络编程以及利用TCP传递信息,都有了更深的了解和认识,也方便了我更好的了解了计算机网络,并进行学习,在解决问题的过程中发现自己对网络编程的全过程不了解,导致理解出现偏差,只是照葫芦画瓢,并没有自己的想法和思路,于是利用网络课程重新对socket进行了学习从而有了更深的认识和理解,同时也更为理解了rsa算法的全过程,完成了本次实验,也有助于我日后密码学的学习。
参考资料
《python可以这样学》
《Python编程:从入门到实践》