zoukankan      html  css  js  c++  java
  • 2017-2018-2 20165215 实验五 网络编程与安全

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

    实验报告封面

    实验内容

    网络编程与安全-1

    1. 任务详情:

    两人一组结对编程:

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

    2. 相关知识点

    • 算符优先法求解表达式:(生成后缀表达式+后缀表达式求值)

      • 步骤1:建立符号运算的优先级关系表

      • 步骤2
        • 设操作数栈OPND,置空;运算符栈OPTR,最低符号#压进OPTR;
        • 读入字符C,C若是操作数, 进OPND;若是运算符,与OPTR栈顶元素(A)比较,根据算符优先级,决定如何处理:
          • A<C, C压入OPTR栈;
          • A=C, A从OPTR出栈;
          • A>C,A出栈,从OPND依次弹出两个操作数y、x, 计算Z=x A y,Z压入OPND栈。C压进OPTR.
        • 重复上一步,直至表达式结束。

    3. 实验截图

    4. 码云链接

    网络编程与安全-2

    1. 任务详情:

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

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

    2. 相关知识点

    • 当两个程序需要通信时,它们可以通过使用Socket类建立套接字对象并连接在一起(端口号和IP地址的组合得出一个网络套接字)
    • Socket类的构造方法为Socket(String host, int port),参数host是服务器的IP地址,port是端口号
    • ServerSocket 的构造方法是 ServerSocket(int port),port 是一个端口号
    • 可以使用方法accept()将客户端的套接字和服务器端的套接字连接起来
    • 从套接字连接中读取数据与从文件中读取数据有着很大的不同,从文件中读取数据时,所有的数据都已经在文件中了,而使用套接字连接时,可能在另一端数据发送之前,就已经开始读取了
    • 注意accept方法也会阻塞线程的执行,直到接收到客户的呼叫

    3. 实验截图

    4. 码云链接

    网络编程与安全-3

    1. 任务详情:

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

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

    2. 参考资料

    AES加密示例

    3. 实验截图

    4. 码云链接

    网络编程与安全-4

    1. 任务详情:

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

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

    2. 参考资料

    密钥交换算法DH(Java实现)

    3. 实验截图

    4. 码云链接

    网络编程与安全-5

    1. 任务详情:

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

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

    2. 参考资料

    Java 密码学算法

    3. 实验截图

    4. 码云链接

    PSP(Personal Software Process)时间统计:

    步骤 耗时 百分比
    需求分析 30min 9.09%
    设计 90min 18.1%
    代码实现 120min 36.3%
    测试 60min 18.1%
    分析总结 30min 9.09%

    实验小结

    本次实验大量运用到之前的知识,特别是教材第十三章《Java网络编程》与Java密码学部分,在实验过程中,我不仅复习巩固了之前的知识点,还更进一步地掌握了如何将它们融会贯通。

  • 相关阅读:
    Zigbee学习路线
    Zigbee简介
    验证lagrange 定理
    为什么(12)式,km不能直接相乘?而要让域k先乘一个代数A里面的单位元,再作用在群M上呢?
    strong weak distribution
    sufficient statistics
    tensorflow TypeError: Can not convert a float32 into a Tensor or Operation
    tensorflow 训练的时候loss=nan
    tensorflow run()和 eval()
    python array基本操作一
  • 原文地址:https://www.cnblogs.com/fyss/p/9101324.html
Copyright © 2011-2022 走看看