• 20172311 2017-2018-2 《程序设计与数据结构》实验五报告


    20172311 2017-2018-2 《程序设计与数据结构》实验五报告

    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 赵晓海
    学号:20172311
    实验教师:王志强
    实验日期:2018年6月18日
    必修/选修: 必修


    1.实验内容

    网络编程与安全-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. 客户端显示服务器发送过来的结果
    6. 上传测试结果截图和码云链接

    2.实验过程及结果

    网络编程与安全-1

    结果提交截图:

    1.中缀表达式转后缀表达式测试类运行结果:

    2.后缀表达式计算测试类运行结果:

    实验最终代码链接:

    中缀转后缀测试类代码链接

    后缀计算测试类代码链接

    本实验收获:

    通过本实验我学到了如何编写一个中缀表达式转成后缀表达式的类和如何编写一个后缀表达式计算的类,同时能够编写简单的测试类进行测试。


    网络编程与安全-2

    结果提交截图:

    1.服务器运行截图:

    2.客户端运行截图:

    实验最终代码链接:

    服务器代码链接

    客户端代码链接

    本实验收获

    通过本实验的学习,我初步掌握了如何在客户端和服务器之间搭建平台,并且在服务器运行的条件下通过运行客户端实现客户端和服务器之间的一些交互。


    网络编程与安全-3

    结果提交截图:

    1.服务器运行截图:

    2.客户端运行截图:

    实验最终代码链接:

    客户端代码链接

    服务器代码链接
    客户端生成密钥代码链接

    本实验收获:

    通过学习本实验我了解到客户端和服务器之间的交互可以通过信息加密保证信息传递的安全,此实验中的对称加密客户端和服务器使用同一密钥进行加密和解密,密钥由客户端直接告诉服务器从而将信息解密。


    网络编程与安全-4

    结果提交截图:

    1.服务器运行截图:

    2.客户端运行截图:

    实验最终代码链接:

    客户端代码链接

    服务器代码链接

    本实验收获:

    通过对本实验的学习了解到在客户端和服务器进行交互时密钥可以由客户端直接发到服务器,而其密钥的传送可以采用DH算法从而保证密钥的安全传送。


    网络编程与安全-5

    结果提交截图:

    1.服务器运行截图:

    2.客户端运行截图:

    实验最终代码链接:

    服务器代码链接

    客户端代码链接

    本实验收获:

    通过对本实验的学习了解到为了保证信息没有被篡改,客户端可以附带发送一个明文的MD5值,服务器将密文解密之后计算所得明文的MD5值与客户端发过来的MD5值比较,若相同则进行后续的算式计算和操作,若不同则不进行后续计算和发送操作。


    3.实验过程中遇到的问题和解决过程

    • 问题:实验三中服务器运行后,客户端运行显示连接错误

    • 解决方案:通过询问老师得知电脑的IP地址是会变的,具体的查询电脑IP的过程如下:
      1.使用快捷键win+ r打开运行界面如下:

    2.输入cmd后点击确定打开命令行界面如下:

    3.命令行下输入ipconfig后敲击回车两次,红圈中的信息即是IP地址:


    4.感想

    通过本次试验,我了解到了客户端和服务器通过网络进行交互的基本过程,同时也意识到了信息在传送过程中的安全性问题,我们可以通过对信息加密保证信息的安全性和完整性。而具体的方法则有很多,希望日后能够更深入的学习和了解!!

    5.参考资料

  • 相关阅读:
    类的有参方法
    WPF 中的设备无关单位
    Skelta BPM.NET 2006 初探
    Reporting Services Handscript
    C语言I博客作业03
    C语言I博客作业02
    C++类的运算符重载和转换函数结合的问题
    C++ 函数返回类成员的问题
    kaggle 利用linear regression 进行房价预测
    android Could not open: c:\。。。。\.android/avd/XXXX.ini 问题和解决方法
  • 原文地址:https://www.cnblogs.com/zhaoxiaohai/p/9200477.html
Copyright © 2020-2023  润新知