20172320 2017-2018-2 《程序设计与数据结构》实验五报告

Posted garolwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172320 2017-2018-2 《程序设计与数据结构》实验五报告相关的知识,希望对你有一定的参考价值。

20172320 2017-2018-2 《程序设计与数据结构》实验四报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 李闻洲
学号:20172320
实验教师:王志强
实验日期:2018年6月18日
必修/选修: 必修

实验内容

结对编程

  • 实验(1)两人一组结对编程:
  1. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA
  2. 结对实现中缀表达式转后缀表达式的功能 MyBC.java
  3. 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
  4. 上传测试代码运行结果截图和码云链接
  • 实验(2)结对编程
    1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
  4. 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果
  • 实验(3)加密结对编程
    1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
  4. 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  5. 客户端显示服务器发送过来的结果
  • 实验(4)密钥分发结对编程:
    1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
  4. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  5. 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  6. 客户端显示服务器发送过来的结果
  • 实验(5)完整性校验结对编程:1人负责客户端,一人负责服务器
  1. 注意责任归宿,要会通过测试证明自己没有问题
  2. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
  3. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
  4. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
  5. 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
  6. 客户端显示服务器发送过来的结果

    实验过程及结果:

  • 实验(1)
    直接搬运四则运算的代码
    技术分享图片
  • 实验(2)
    将四则运算复制到老师给的模板中,客户端先将四则运算的自动生成题目改为输入中缀表达式,后将生成的后缀表达式传给服务器,最后由服务器调用后缀计算类,最后将答案反馈给客户端
    技术分享图片
  • 实验(3)
    加入了对称加密,先用DES加密算法生成密钥,并引用密钥,将表达式加密传给服务器,将密钥文件复制进去,在服务器里读取密钥并解密,以后计算并传回客户端
    技术分享图片
  • 实验(4)
    技术分享图片
  • 实验(5)

实验过程中遇到的问题和解决过程

  • 问题1:在做第四个实验时,发现客户端总是提示密钥输出到最后好像输出不了了,服务器一点东西都收不到。
  • 解决方案:这个问题其实有很多的同学都遇到了,我找他们咨询,他们告诉我换个加密方式,所以我将DESede方法改为AES,发现就成功了。

















以上是关于20172320 2017-2018-2 《程序设计与数据结构》实验五报告的主要内容,如果未能解决你的问题,请参考以下文章

20172320 2017-2018-2 《程序设计与数据结构》实验二报告

20172320 2017-2018-2 《Java程序设计》第八周学习总结

20172320 2017-2018-2 《Java程序设计》第十周学习总结

2017-2018-2 1723 『Java程序设计』课程 结对编程练习_四则运算

# 20172320 《程序设计与数据结构》第一周学习总结

20172320 2018-2019-1 《Java程序设计》第3周学习总结