一、实验报告封面
课程:Java程序设计 班级:1652班 姓名:葛宇豪 学号:20165220
指导教师:娄嘉鹏 实验日期:2018年5月28日
实验时间:15:35 - 17:15 实验序号:五
实验名称: 网络编程与安全
实验目的:
1、掌握Java Socket的相关内容;
2、学会建立客户端与服务器端之间的联系;
3、学习并应用密码学的相关内容
二、实验内容
任务(一)
1、结对实现中缀表达式转后缀表达式的功能 MyBC.java
2、结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
任务(二)
1、基于Java Socket实现客户端/服务器功能,传输方式用TCP
2、客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
3、服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
4、客户端显示服务器发送过来的结果
任务(三)
1、基于Java Socket实现客户端/服务器功能,传输方式用TCP
2、客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
3、服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
4、客户端显示服务器发送过来的结果
任务(四)
1、基于Java Socket实现客户端/服务器功能,传输方式用TCP
2、客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
3、客户端和服务器用DH算法进行3DES或AES算法的密钥交换
4、服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
5、客户端显示服务器发送过来的结果
任务(五)
1、基于Java Socket实现客户端/服务器功能,传输方式用TCP
2、客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
3、客户端和服务器用DH算法进行3DES或AES算法的密钥交换
4、服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
5、客户端显示服务器发送过来的结果
最后将每个任务的代码上传到码云。
实验(一)结果分析
实验(二)结果分析:
我负责客户端,20165231王扬鸿永同学负责服务器。
实验(三)结果分析:
这个比较复杂,我们参考了Java密码学算法
实验(四)结果分析:
实验(五)结果分析:
实验感想:这次实验感觉难度还是很大的,用了好多密码学相关知识,这也让我认识到了这些学科之间都是可以互通的,之前用C语言编写过密码学的相关加密解密,所以这次算是有所准备吧,期待接下来能够做的越来越好!
PSP:
PSP | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) | |
---|---|---|---|---|
Planning | 计划 | 1 | 1 | |
· Estimate | · 估计这个任务需要多少时间 | 5 | 10 | |
· Analysis | · 需求分析 (包括学习新技术) | 2 | 2 | |
· Design Spec | · 生成设计文档 | 1 | 1 | |
· Design Review | · 设计复审 (和同事审核设计文档) | 1 | 1 | |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1 | 1 | |
· Design | · 具体设计 | 2 | 3 | |
· Coding | · 具体编码 | 5 | 6 | |
· Code Review | · 代码复审 | 1 | 1 | |
· Test | · 测试(自我测试,修改代码,提交修改) | 1 | 1 | |
Reporting | 报告 | 1 | 1 | |
· Test Report | · 测试报告 | 2 | 2.5 | |
· Size Measurement | · 计算工作量 | 0.5 | 0.5 | |
· Postmortem & Process | · 事后总结, 并提出过程改进计划 | 3 | 2 |