实验内容

1.掌握Socket程序的编写;

2.掌握密码技术的使用;

3.设计安全传输系统。

实验1

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

效果截图

码云链接

实验2

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

效果截图

码云链接

实验3

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

效果截图

码云链接

实验4

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

效果截图

码云链接

实验5

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

效果截图

码云链接

实验感想

本次实验涉及知识内容广,对网络编程以及安全有了一定的了解,我本次主要负责服务器端,虽然本次实验的难点很多,但根据老师实验指导书的步骤一步一步来走,我们不难作出实验,很容易将新的知识消化。

PSP(Personal Software Process)时间:

步骤 耗时 百分比
需求分析 30min 3.6%
设计 60min 7.1%
代码实现 540min 64.3%
测试 120min 14.3%
分析总结 60min 10.7%

最新文章

  1. Eclipse中全局搜索和更替
  2. Redis安装及主从配置(转)
  3. iis 部署 webapi2.0 访问报错解决
  4. [系统开发] Postfix 邮件管理系统
  5. 返回顶部js
  6. iOS 进阶 第十四天(0416)
  7. grails框架中在使用domain的save方法保存时保存不成功
  8. 读APUE分析散列表的使用
  9. xhost和DISPLAY
  10. 使用Python写一个贪吃蛇
  11. oracle数据库显示所有用户方法
  12. Coursera, Big Data 3, Integration and Processing (week 5)
  13. [LeetCode] Random Flip Matrix 随机翻转矩阵
  14. Linux VPS基础命令 - cp复制文件命令
  15. 初学HTML-8
  16. Linux系统调用的运行过程【转】
  17. javascript Object.create()究竟发生了什么
  18. django 返回json数据
  19. Oracle 11g 分区拆分与合并
  20. [翻译] KYCircularProgress

热门文章

  1. Python 处理脚本的命令行参数(三):使用argparse
  2. [T-ARA][SEXY LOVE]
  3. 【[SCOI2016]背单词】
  4. 通过iframe标签绕过csp
  5. robotframwork接口测试(四)—其他库的安装
  6. 利用n 升级工具升级Node.js版本及在mac环境下的坑
  7. Spring(五)之Bean定义继承和依赖注入
  8. VC++使用socket进行TCP、UDP通信实例总结
  9. 如何处理Entity Framework / Entity Framework Core中的DbUpdateConcurrencyException异常(转载)
  10. [leetcode] 二叉树的前序,中序,后续,层次遍历