2018-2019-2 20175215 实验五《网络编程与安全》实验报告
一、实验内容与步骤
1.任务一:两人一组结对编程。
- 任务要求:
- 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA
- 结对实现中缀表达式转后缀表达式的功能
MyBC.java
- 结对实现中缀表达式转后缀表达式的功能
- 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用
MyDC.java
- 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用
- 上传测试代码运行结果截图和码云链接
- 任务过程
- 程序代码为:
MyDC.java
MyBC.java
- 代码详情见码云链接
- 任务截图:
2.任务二:结对编程。
- 1人负责客户端,一人负责服务器。
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用
MyBC.java
的功能转化为后缀表达式,把后缀表达式通过网络发送给服务器
- 客户端让用户输入中缀表达式,然后把中缀表达式调用
- 服务器接收到后缀表达式,调用
MyDC.java
的功能计算后缀表达式的值,把结果发送给客户端
- 服务器接收到后缀表达式,调用
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
- 任务过程
- 程序代码为:
Client.java
Server.java
MyDC.java
MyBC.java
- 代码详情见码云链接
- 运行截图
客户端截图
服务器截图
3.任务三:加密结对编程。
- 任务要求:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密后通过网络把密文发送给服务器
- 服务器接收到后缀表达式表达式后,进行解密(和客户端协商密钥,可以用数组保存),然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
- 任务过程:
- 程序代码为:
Server2.java
Client2.java
Encoder.java
Skey_AES.java
MyDC.java
MyBC.java
- 代码详情见码云链接
- 运行截图
客户端截图
服务器截图
注:任务四任务五建立在公钥已由Key_DH.java
生成好并传输给对方的前提下开始的。
4.任务四:密钥分发结对编程。
- 任务要求:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,然后调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
- 任务过程:
- 程序代码为:
Client3.java
Server3.java
Encoder.java
Key_DH.java
KeyAgree.java
MyDC.java
MyBC.java
- 运行截图:
客户端截图
服务器截图
5.任务五:完整性校验结对编程。
- 任务要求:1人负责客户端,一人负责服务器
- 注意责任归宿,要会通过测试证明自己没有问题
- 基于Java Socket实现客户端/服务器功能,传输方式用TCP
- 客户端让用户输入中缀表达式,然后把中缀表达式调用MyBC.java的功能转化为后缀表达式,把后缀表达式用3DES或AES算法加密通过网络把密文和明文的MD5値发送给服务器
- 客户端和服务器用DH算法进行3DES或AES算法的密钥交换
- 服务器接收到后缀表达式表达式后,进行解密,解密后计算明文的MD5值,和客户端传来的MD5进行比较,一致则调用MyDC.java的功能计算后缀表达式的值,把结果发送给客户端
- 客户端显示服务器发送过来的结果
- 上传测试结果截图和码云链接
- 任务过程:
- 程序代码为:
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 实验五《网络编程与安全》实验报告相关推荐
- java小球碰撞实验报告_20155317 《Java程序设计》实验五网络编程与安全实验报告...
20155317 <Java程序设计>实验五网络编程与安全实验报告 遇到问题 在刚开始启动客户端或者服务端时,出现了一系列的错误情况,总是提示异常信息 后来经过询问同学,反应将端口号修改一 ...
- 实验五 网络编程与安全-----实验报告
一.实验五 网络编程与安全-1 1.实验要求: 两人一组结对编程: (1)参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA : (2)结对实现 ...
- 2017-2018-2 20165329 实验五 网络编程与安全
2017-2018-2 20165329 实验五 网络编程与安全 实验报告封面 课程:Java程序设计 班级:1653班 姓名:何佳伟 学号:20165329 指导教师:娄嘉鹏 实验日期:2018年5 ...
- 20175212童皓桢 实验五 网络编程与安全
20175212童皓桢 实验五 网络编程与安全 实验内容 结对编程,完成网络编程与安全相关内容 实验步骤 任务一 任务一要求: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面 ...
- java 网络实验_Java实验五网络编程与安全
实验五 网络编程与安全 实验准备 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀表达式 ...
- 20155207 实验五 网络编程与安全
20155207 实验五 网络编程与安全 实验内容 任务一 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 结对实现中缀 ...
- #《JAVA程序设计》 20155214 实验五 网络编程与安全
<JAVA程序设计> 20155214 实验五 网络编程与安全 实验内容 掌握Socket程序的编写: 掌握密码技术的使用: 设计安全传输系统. 实验要求 要求一 结对实现中缀表达式转后缀 ...
- 实验五 网络编程与安全 20162304 张浩林
实验五 网络编程与安全 实验五 网络编程与安全-1 试验内容 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.jav ...
- 实验五 网络编程与安全
一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:高君天 学号:20165319 指导教师:娄嘉鹏 实验日期:2018年5月28日 实验时间:13:45 - 3:25 实验序号:实验五 ...
- 20165201 实验五 网络编程与安全
##20165201 实验五 网络编程与安全 网络编程与安全-1 实验目的与要求: 两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/6766748.html#S ...
最新文章
- 基于开源CA系统ejbca community 6.3.1.1构建私有CA管理数字证书
- 存储过程和函数——概述||创建存储过程||调用存储过程||查看存储过程||删除存储过程
- oracle insert if语句怎么写,oracle存储过程的调用(insert 语句的存储过程)
- 内存和显存_【硬件资讯】显存再升级?Nvidia新卡实锤GDDR6X!显存大升级能否带来性能提升??...
- MySQL 修改用户
- NEERC 2012
- 30天python从入门到精通_2019最新《Python从入门到精通之30天快速学Python教程 》
- 泉州海事学校计算机,泉州海事学校寝室图片、校园环境好吗?
- 一、tkinter简介
- 自定义rest api的基本思想过程--总结
- tp3.2.3 命令模式
- 全网首发:WORD取消了光标的方向
- Atitit node.js自定义模块化 Function walkFileTree() exports.walkFileTree =walkFileTree 引用 Files=require
- 软件测试方案和计划的区别和联系
- Windows的一些溢出题目
- 读书印记 - 《星船伞兵》
- [转] 关于浏览器假死的原因分析和代码优化
- app开屏广告实现——借助webview和原生fetch请求实现
- 从点阵到OLED屏幕——动态扫描显示原理
- 计算矩阵行列式时奇排列与偶排列的判定
热门文章
- cnn风格迁移_愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
- html文档支持代码高亮,为HTML中的代码添加语法高亮
- docker制作深度学习镜像(以windows环境下为例)
- linux smb上传文件,使用Samba服务器由win平台向linux平台上传文件
- mysql学习day01
- python读取txt文件出现UnicodeError
- python实现最大公共子序列
- python源码库安装_Python第三方库安装及常见问题
- 均匀三次b样条曲线_西门子数控曲线加工进给速度优化指令
- Android系统联系人全特效实现(上),分组导航和挤压动画