博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实验五 网络编程与安全
阅读量:5309 次
发布时间:2019-06-14

本文共 2191 字,大约阅读时间需要 7 分钟。

实验五 网络编程与安全-1

实验题目

两人一组结对编程:

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

实验截图

1071478-20170602222028024-327410029.png

实验代码

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

实验题目

结对编程:1人负责客户端,一人负责服务器

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

实验截图

1071478-20170602221014571-1984715509.png

实验代码

实验五 网络编程与安全-3

实验题目

加密结对编程:1人负责客户端,一人负责服务器

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

实验截图

1071478-20170602221026258-591917053.png

实验代码

遇到的知识点及问题

实验五 网络编程与安全-4

实验题目

密钥分发结对编程:1人负责客户端,一人负责服务器

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

实验截图

1071478-20170602221033555-1218725105.png

实验代码

实验五 网络编程与安全-5

实验题目

完整性校验结对编程:1人负责客户端,一人负责服务器

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

实验截图

1071478-20170602221042649-646865028.png

实验代码

遇到的知识点及问题

  • StringTokenizer
    在本次程序中,StringTokenizer起分割作用,把字符串因为空格分成了单个
    nextToken() - 分析下一个。
  1. StringTokenizer(String str) :构造一个用来解析str的StringTokenizer对象。java默认的分隔符是“空格”、“制表符(‘\t’)”、“换行符(‘\n’)”、“回车符(‘\r’)”。
  2. StringTokenizer(String str, String delim) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符。
  3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析str的StringTokenizer对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
  • 问题:当时不知为什么忘了把result入栈,导致总报错。
  • 解决:把测试函数复制到产品代码断点开始单步调试,发现了这个问题。
  • 问题:token是什么类型?
  • 解决:把token放进evalSingleOp()然后IDEA自动报错,我就知道是什么类型了……(非常简便快捷又懒惰的行为)
  • 问题:由于傲娇,我并未使用charAt()方法,所以我就先转字符数组,再把数组的第一个放到evalSingleOp方法里进行计算。
  • 问题:在我编写成功后我开始看参考程序,并思考其中的不同点,发现了些自己的不足。
  • 解决:参考程序中
op2 = (stack.pop()).intValue();

中的intValue()方法的作用是:把Integer类型转化为Int类型。而我没有转也成功了,是因为Integer会自动拆箱为int。参考了

转载于:https://www.cnblogs.com/GDDFZ/p/6935380.html

你可能感兴趣的文章
EntityFramework Code First 参考资料Url
查看>>
ionic2中使用极光IM的WebSDK实现即时聊天
查看>>
如何在Windows Mobile下使用.NET Compact Framework从执行文件取出Icon
查看>>
Calculate Number Of Islands And Lakes 解答
查看>>
Oracle 特殊字符模糊查询的方法
查看>>
总结ThinkPHP使用技巧经验分享(一)
查看>>
基于父元素的高度居中自适应(移动端)
查看>>
c++ 判断是元音还是辅音
查看>>
动态库与静态库
查看>>
return函数提前传参和面向对象的编程方式
查看>>
const 命令
查看>>
Swift_字符串详解(String)
查看>>
[转][算法]链接分析算法之:HITS算法
查看>>
oracle高阶知识点
查看>>
poj1068
查看>>
希尔排序
查看>>
快速幂
查看>>
C#使用存储过程访问数据库
查看>>
MySQL定时任务
查看>>
Appium+python自动化(六)- 连接模拟器并启动淘宝APP(超详解)
查看>>