2017-2018-2 20165215 实验五 网络编程与安全
实验报告封面
实验内容
网络编程与安全-1
1. 任务详情:
两人一组结对编程:
- 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA
- 结对实现中缀表达式转后缀表达式的功能 MyBC.java
- 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
- 上传测试代码运行结果截图和码云链接
2. 相关知识点
-
算符优先法求解表达式:(生成后缀表达式+后缀表达式求值)
- 步骤1:建立符号运算的优先级关系表
- 步骤2
- 设操作数栈OPND,置空;运算符栈OPTR,最低符号#压进OPTR;
- 读入字符C,C若是操作数, 进OPND;若是运算符,与OPTR栈顶元素(A)比较,根据算符优先级,决定如何处理:
- A<C, C压入OPTR栈;
- A=C, A从OPTR出栈;
- A>C,A出栈,从OPND依次弹出两个操作数y、x, 计算Z=x A y,Z压入OPND栈。C压进OPTR.
- 重复上一步,直至表达式结束。
3. 实验截图
4. 码云链接
网络编程与安全-2
1. 任务详情:
结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
- 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
2. 相关知识点
- 当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号和IP地址的组合得出一个网络套接字)
- Socket类的构造方法为Socket(String host, int port),参数host是服务器的IP地址,port是端口号
- ServerSocket 的构造方法是 ServerSocket(int port),port 是一个端口号
- 可以使用方法accept()将客户端的套接字和服务器端的套接字连接起来
- 从套接字连接中读取数据与从文件中读取数据有着很大的不同,从文件中读取数据时,所有的数据都已经在文件中了,而使用套接字连接时,可能在另一端数据发送之前,就已经开始读取了
- 注意accept方法也会阻塞线程的执行,直到接收到客户的呼叫
3. 实验截图
4. 码云链接
网络编程与安全-3
1. 任务详情:
加密结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
- 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
2. 参考资料
3. 实验截图
4. 码云链接
网络编程与安全-4
1. 任务详情:
密钥分发结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
2. 参考资料
3. 实验截图
4. 码云链接
网络编程与安全-5
1. 任务详情:
完整性校验结对编程:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
-上传测试结果截图和码云链接
2. 参考资料
3. 实验截图
4. 码云链接
PSP(Personal Software Process)时间统计:
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 30min | 9.09% |
设计 | 90min | 18.1% |
代码实现 | 120min | 36.3% |
测试 | 60min | 18.1% |
分析总结 | 30min | 9.09% |
实验小结
本次实验大量运用到之前的知识,特别是教材第十三章《Java网络编程》与Java密码学部分,在实验过程中,我不仅复习巩固了之前的知识点,还更进一步地掌握了如何将它们融会贯通。