热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2017-2018年度《网络编程与安全》第五次实验报告

本报告详细记录了2017-2018学年《网络编程与安全》课程第五次实验的具体内容、实验过程、遇到的问题及解决方案。

课程:《程序设计与数据结构》


班级:1723


姓名:方艺雯


学号:20172314


指导教师:王志强


实验日期:2018年6月13日


课程性质:必修


1. 实验目标与要求



  • 实验5-1: 结对编程任务,包括中缀表达式转后缀表达式及后缀表达式的求值。

  • 实验5-2: 基于Java Socket实现客户端与服务器之间的通信,完成中缀表达式的转换与求值。

  • 实验5-3: 在5-2基础上增加3DES或AES加密技术,确保数据传输的安全性。

  • 实验5-4: 引入密钥分发机制,使用DH算法进行密钥交换,增强安全性。

  • 实验5-5: 实现数据完整性的校验,确保数据在传输过程中未被篡改。


2. 实验过程与结果


2.1 实验5-1


过程:利用提供的MyBC和MyDC类实现中缀表达式转后缀表达式及后缀表达式的求值功能。通过编写Calculator类整合上述功能,实现了用户输入中缀表达式,系统自动转换并计算结果的功能。


结果:成功实现了中缀表达式向后缀表达式的转换及求值,验证了系统的正确性和可靠性。


2.2 实验5-2


过程:在实验5-1的基础上,开发了客户端与服务器之间的通信功能。客户端负责接收用户输入的中缀表达式,转换为后缀表达式并通过网络发送给服务器;服务器接收后缀表达式,计算其值并返回给客户端。


结果:客户端与服务器成功建立了通信,实现了表达式的远程计算功能,验证了网络编程的基本原理和技术。


2.3 实验5-3


过程:在5-2的基础上加入了3DES或AES加密技术,确保了数据在传输过程中的安全性。通过生成对称密钥,实现了数据的加密与解密。


结果:成功实现了数据的安全传输,确保了数据的机密性,验证了加密技术的有效性。


2.4 实验5-4


过程:引入了DH算法进行密钥交换,增强了系统的安全性。通过生成公钥和私钥,实现了密钥的安全交换。


结果:成功实现了密钥的安全分发,确保了数据在传输过程中的安全性和完整性。


2.5 实验5-5


过程:实现了数据完整性校验,确保数据在传输过程中未被篡改。使用MD5算法计算数据的摘要,客户端和服务器分别计算并对比摘要值。


结果:成功实现了数据完整性的校验,确保了数据在传输过程中的完整性,验证了数据校验技术的有效性。


3. 遇到的问题及解决方法



  • 问题1:在实验5-3中,尝试发送密钥时,由于使用了不合适的分隔符导致错误。通过调整分隔符解决了问题。

  • 问题2:遇到“connection reset”异常。通过检查服务器端口是否被占用、确保客户端与服务器端的正确连接顺序等方法解决了问题。

  • 问题3:通过QQ发送密钥时,密钥被修改并添加表情。最终通过直接在程序中生成密钥并传输解决了问题。


4. 其他


通过本次实验,加深了对网络编程和安全技术的理解,尤其是对加密技术和数据完整性校验有了更深入的认识。虽然遇到了一些挑战,但最终都得到了解决,收获颇丰。


5. 参考资料



  • 网络连接异常分析与解决方法

  • Java加密算法概述

  • 使用Java API生成MD5摘要


推荐阅读
  • 本文介绍了如何利用Java中的URLConnection类来实现基本的网络爬虫功能,包括向目标网站发送请求、接收HTML响应、解析HTML以提取所需信息,并处理可能存在的递归爬取需求。 ... [详细]
  • 本文详细介绍了ActivityManagerService (AMS) 的工作原理及其在Android系统中的重要角色。AMS作为system_server进程的一部分,在系统启动时加载,负责管理和协调应用程序中的Activity和服务(Service)。文章将通过具体的接口图和通信流程,帮助读者更好地理解AMS的工作机制。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
  • 本文详细探讨了 PHP 中常见的 '未定义索引' 错误,包括其原因、解决方案及最佳实践。通过实例和代码片段,帮助开发者更好地理解和处理这一常见问题。 ... [详细]
  • 本文深入探讨了 Exchange Server 2010 中客户端访问的代理和重定向机制,特别是在跨站点环境中如何配置这些功能以确保用户能够顺利访问邮箱服务。通过详细解析不同场景下的应用,帮助管理员更好地理解和实施相关设置。 ... [详细]
  • 尝试执行数据库模式加载时遇到错误'Mysql2::Error: 指定的键太长;最大键长度为767字节'。本文将探讨这一问题的成因及解决方案。 ... [详细]
  • Python3 中使用 lxml 模块解析 XPath 数据详解
    XPath 是一种用于在 XML 文档中查找信息的路径语言,同样适用于 HTML 文件的搜索。本文将详细介绍如何利用 Python 的 lxml 模块通过 XPath 技术高效地解析和抓取网页数据。 ... [详细]
  • 在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • cJinja:C++编写的轻量级HTML模板引擎
    本文介绍了cJinja,这是一个用C++编写的轻量级HTML模板解析库。它利用ejson来处理模板中的数据替换(即上下文),其语法与Django Jinja非常相似,功能强大且易于学习。 ... [详细]
  • Chapter11&12:DefocusBlur&FinalScene在Camera.h中修改如下:#pragmaonce#define_USE ... [详细]
  • MD5(Message-Digest Algorithm 5),即消息摘要算法第五版,是一种广泛应用于计算机安全领域的散列函数,主要用于确保数据传输的完整性和验证数据的一致性。本文将介绍如何在Java编程环境中实现MD5加密。 ... [详细]
  • ThinkPHP框架提供了add方法来实现在数据库表中插入新记录的功能,此方法等效于SQL语句中的INSERT INTO命令。本文将详细介绍add方法的使用方式及其应用场景。 ... [详细]
  • 开发笔记:新手DVWACSRF
    开发笔记:新手DVWACSRF ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
author-avatar
zero__
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有