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

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

实验报告封面

实验内容

网络编程与安全-1

1. 任务详情:html

两人一组结对编程:java

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

2. 相关知识点git

  • 算符优先法求解表达式:(生成后缀表达式+后缀表达式求值)
    • 步骤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密码学部分,在实验过程当中,我不只复习巩固了以前的知识点,还更进一步地掌握了如何将它们融会贯通。

相关文章
相关标签/搜索