一、实验内容与步骤

1.任务一:两人一组结对编程。

  • 任务要求

      1. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA
      1. 结对实现中缀表达式转后缀表达式的功能 MyBC.java
      1. 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java
      1. 上传测试代码运行结果截图和码云链接
  • 任务过程
  • 程序代码为:
    • MyDC.java
    • MyBC.java
    • 代码详情见码云链接
  • 任务截图:

2.任务二:结对编程。

  • 1人负责客户端,一人负责服务器。

      1. 注意责任归宿,要会通过测试证明自己没有问题
      1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
      1. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
      1. 服务器接收到后缀表达式,调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
      1. 客户端显示服务器发送过来的结果
      1. 上传测试结果截图和码云链接
  • 任务过程
  • 程序代码为:
    • Client.java
    • Server.java
    • MyDC.java
    • MyBC.java
    • 代码详情见码云链接
  • 运行截图
    • 客户端截图

    • 服务器截图

3.任务三:加密结对编程。

  • 任务要求:1人负责客户端,一人负责服务器

      1. 注意责任归宿,要会通过测试证明自己没有问题
      1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
      1. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
      1. 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
      1. 客户端显示服务器发送过来的结果
      1. 上传测试结果截图和码云链接
  • 任务过程:
  • 程序代码为:
    • Server2.java
    • Client2.java
    • Encoder.java
    • Skey_AES.java
    • MyDC.java
    • MyBC.java
    • 代码详情见码云链接
  • 运行截图
    • 客户端截图

    • 服务器截图

注:任务四任务五建立在公钥已由Key_DH.java生成好并传输给对方的前提下开始的。

4.任务四:密钥分发结对编程。

  • 任务要求:1人负责客户端,一人负责服务器

      1. 注意责任归宿,要会通过测试证明自己没有问题
      1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
      1. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
      1. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
      1. 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
      1. 客户端显示服务器发送过来的结果
      1. 上传测试结果截图和码云链接
  • 任务过程:
  • 程序代码为:
    • Client3.java
    • Server3.java
    • Encoder.java
    • Key_DH.java
    • KeyAgree.java
    • MyDC.java
    • MyBC.java
  • 运行截图:
    • 客户端截图

    • 服务器截图

5.任务五:完整性校验结对编程。

  • 任务要求:1人负责客户端,一人负责服务器

      1. 注意责任归宿,要会通过测试证明自己没有问题
      1. 基于Java Socket实现客户端/服务器功能,传输方式用TCP
      1. 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
      1. 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
      1. 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
      1. 客户端显示服务器发送过来的结果
      1. 上传测试结果截图和码云链接
  • 任务过程:
  • 程序代码为:
    • Client4.java
    • Server4.java
    • Encoder.java
    • DigestPass.java(将老师所给的代码DigestPass.java进行相应的修改,使其能够比较生成的消息摘要是否相同。)
    • Key_DH.java
    • KeyAgree.java
  • 运行截图:
    • 客户端截图

    • 服务器截图

SP.码云链接

SP2.实验中碰到的问题

1.结对伙伴使用jdk包版本不对的问题

  • 问题:导入以下两个包出现错误
  • 问题解决:使用jdk包版本不对
    结对伙伴使用的是jdk11,而这两个包是jdk8中的,因此出现上图错误。

2.传输的被加密的密钥与解密后原密钥不对的问题

  • 问题:传输密钥画蛇添足的使用以下代码之后传输,而不是直接使用key1(String)
        String keyone= new String (a1);keyone = Encoder.AESEncode(sharekey,keyone);//客户端对密钥进行DH加密

导致下图的问题

  • 问题解决:使用原来的密钥加密后直接传输(主要问题在于新建的密钥字符串相比于原来的密钥少了一个空格)

SP3.参考资料

1.Java 密码学算法
2.20165235 实验五 网络编程与安全
3.Java重写equals方法(重点讲解)

转载于:https://www.cnblogs.com/jxxydwt1999/p/10894295.html

2018-2019-2 20175215 实验五《网络编程与安全》实验报告相关推荐

  1. java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...

    20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...

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

    一.实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA : (2)结对实现 ...

  3. 2017-2018-2 20165329 实验五 网络编程与安全

    2017-2018-2 20165329 实验五 网络编程与安全 实验报告封面 课程:Java程序设计 班级:1653班 姓名:何佳伟 学号:20165329 指导教师:娄嘉鹏 实验日期:2018年5 ...

  4. 20175212童皓桢 实验五 网络编程与安全

    20175212童皓桢 实验五 网络编程与安全 实验内容 结对编程,完成网络编程与安全相关内容 实验步骤 任务一 任务一要求: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...

  5. java 网络实验_Java实验五网络编程与安全

    实验五 网络编程与安全 实验准备 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式 ...

  6. 20155207 实验五 网络编程与安全

    20155207 实验五 网络编程与安全 实验内容 任务一 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀 ...

  7. #《JAVA程序设计》 20155214 实验五 网络编程与安全

    <JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...

  8. 实验五 网络编程与安全 20162304 张浩林

    实验五 网络编程与安全 实验五 网络编程与安全-1 试验内容 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.jav ...

  9. 实验五 网络编程与安全

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:高君天 学号:20165319 指导教师:娄嘉鹏 实验日期:2018年5月28日 实验时间:13:45 - 3:25 实验序号:实验五 ...

  10. 20165201 实验五 网络编程与安全

    ##20165201 实验五 网络编程与安全 网络编程与安全-1 实验目的与要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#S ...

最新文章

  1. 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
  2. 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程
  3. oracle insert if语句怎么写,oracle存储过程的调用(insert 语句的存储过程)
  4. 内存和显存_【硬件资讯】显存再升级?Nvidia新卡实锤GDDR6X!显存大升级能否带来性能提升??...
  5. MySQL 修改用户
  6. NEERC 2012
  7. 30天python从入门到精通_2019最新《Python从入门到精通之30天快速学Python教程 》
  8. 泉州海事学校计算机,泉州海事学校寝室图片、校园环境好吗?
  9. 一、tkinter简介
  10. 自定义rest api的基本思想过程--总结
  11. tp3.2.3 命令模式
  12. 全网首发:WORD取消了光标的方向
  13. Atitit node.js自定义模块化 Function walkFileTree() exports.walkFileTree =walkFileTree 引用  Files=require
  14. 软件测试方案和计划的区别和联系
  15. Windows的一些溢出题目
  16. 读书印记 - 《星船伞兵》
  17. [转] 关于浏览器假死的原因分析和代码优化
  18. app开屏广告实现——借助webview和原生fetch请求实现
  19. 从点阵到OLED屏幕——动态扫描显示原理
  20. 计算矩阵行列式时奇排列与偶排列的判定

热门文章

  1. cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
  2. html文档支持代码高亮,为HTML中的代码添加语法高亮
  3. docker制作深度学习镜像(以windows环境下为例)
  4. linux smb上传文件,使用Samba服务器由win平台向linux平台上传文件
  5. mysql学习day01
  6. python读取txt文件出现UnicodeError
  7. python实现最大公共子序列
  8. python源码库安装_Python第三方库安装及常见问题
  9. 均匀三次b样条曲线_西门子数控曲线加工进给速度优化指令
  10. Android系统联系人全特效实现(上),分组导航和挤压动画