实验五 网络编程与安全 实验报告

实验五 网络编程与安全 实验报告

目录

一、代码托管地址

返回目录

网络编程与安全-1

实验目的

两人一组结对编程:
0. 参考数据结构应用

  1. 结对实现中缀表达式转后缀表达式的功能 MyBC.java
  2. 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
  3. 上传测试代码运行结果截图和码云链接

实验步骤

1.编写MyBC.java(在前几周的四则运算作业中已经完成,只需拷贝过来)

方法测试

2.在MyDCTester.java中调用MyBC.javaMyDC.Java
3.运行MyDCTester.java,提交结果截图

遇到的问题及解决办法

这个实验的代码在之前已经写好了,只需组合在一起就行了,没有遇到什么问题

实验小结

本次实验的主要目的是练习把各个代码组合在一起形成一个系统,在测试类中调用MyBC.javaMyDC.Java中的方法,可以很方便的对中缀表达式求值

返回目录

三、网络编程与安全-2

实验目的

结对编程:一人负责客户端,一人负责服务器
0. 注意责任归宿,要会通过测试证明自己没有问题

  1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  2. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
  3. 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  4. 客户端显示服务器发送过来的结果

实验步骤

  1. 编写客户端和服务器的代码,参考java 客户端连接服务器 发送对象 打印字符串
  2. 在客户端中输入中缀表达式,转化成后缀表达式传给服务器
  3. 服务器接收后进行计算,把结果传回客户端并打印

遇到的问题及解决办法

实验小结

本次实验主要问题是建立客户端与服务器的连接,并实现数据的传输。一开始看书上的代码不太懂,在网上查了相关资料之后才弄懂。之后就只需在客户端和服务器实现MyDCTester.Java的功能就行了。

返回目录

四、网络编程与安全-3

实验目的

加密结对编程:1人负责客户端,一人负责服务器
0. 注意责任归宿,要会通过测试证明自己没有问题

  1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  2. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
  3. 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  4. 客户端显示服务器发送过来的结果

实验步骤

  1. 在上个实验的基础上对客户端要发送的信息进行AES加密
  2. 对接收的信息进行解密,计算结果
  3. 把结果发回客户端,并在客户端显示

遇到的问题及解决办法

  • 问题:AES加密算法如何使用
  • 解决办法:参考JAVA实现AES加密,创建AES.Java,在客户端调用其中加密方法进行加密,在服务器调用解密方法进行解密

实验小结

本次实验的难点是AES加密。其实之前学了DES加密,不过这次想换种方法。于是在网上找了相关代码,也算是学会了一种新的加密方法。

返回目录

五、网络编程与安全-4

实验目的

密钥分发结对编程:1人负责客户端,一人负责服务器
0. 注意责任归宿,要会通过测试证明自己没有问题

  1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  2. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
  3. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  4. 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果

实验步骤

  1. 在上次的基础上用DH算法对AES的密钥进行加密
  2. 服务器解密从而获取密钥,再对密文解密,计算结果

遇到的问题及解决办法

  • 问题:DH算法的使用
  • 解决办法:参考老师博客Java 密码学算法倒数第二部分

实验小结

本次实验主要是加上DH算法对密钥进行加密以保证安全。其实老师的博客之前就看过了,不过之前看的主要是DES和RSA加密算法,忽略了DH算法,这次重新看一遍,把代码拷下来运行一下,问题就解决了。

返回目录

六、网络编程与安全-5

实验目的

完整性校验结对编程:1人负责客户端,一人负责服务器
0. 注意责任归宿,要会通过测试证明自己没有问题

  1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  2. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
  3. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  4. 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果

实验步骤

  1. 在上次实验的基础上,发送明文的MD5值给服务器,校验完整性
  2. 服务器把解密后的信息的MD5值与客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端

遇到的问题及解决办法

没什么太大的问题,老师的博客里有求MD5值的代码,只需把其中的方法抽象出来,在客户端和服务器调用即可。

实验小结

加了个MD5值用来进行完整性校验,做的比较顺利。

返回目录

七、实验总结

这五个五实验不需要自己写很多新的代码,只是把之前学的组合在一起,让其发挥功效。五个实验层层递进,每次都加一个功能,其实越做到后面越简单,只要客户端和服务器没有问题,那么只需在其中调用相应的方法就好了。所以此次实验主要是考察我们对代码的组合,复用。练习的是把各种功能的代码组成一个系统,从而实现强大的功能

返回目录

posted @ 2017-06-09 18:45  20162311张之睿  阅读(426)  评论(0编辑  收藏  举报