20145113 Java实验五 网络编程及安全

实验内容

  • 对于客户端与服务器端:修改原代码,使其可以实现连续的传消息,并且传送文件。

  • 对于加解密部分:
    • 对于原先的加密只加密“hello world",修改实现对一个.txt文件进行DES加密

    • 然后接收对方传送的公钥
    • 用公钥对DES的密钥进行加密,并将加密好的密钥传送给对方
    • 对方使用私钥对加密好的密钥进行解密,然后得到DES的密钥
    • 使用DES的密钥进行对加密的文件解密,得到明文

    实验成果

    客户端(Client):20145113 林晶

    DES生成密钥

    将明文用DES进行加密

    接收服务器端的公钥,对DES的密钥用RSA进行加密

    将进行RSA加密后的密钥和明文发送给服务器端,进行解密。

    服务器(Serve):20145102 周正一

    生成RSA的公钥和私钥

    将公钥发送给客户端,然后接收客户端发送的加密后的密钥跟明文进行解密
    先将密钥进行RSA解密

    得到解密后的密钥,然后进行密文的DES解密

    但是最终出现了问题。

    实验中遇到的问题

    问题:在正常进行RSA加解密的时候读入的是.txt文件可以进行正常的加解密,但是在对DES的密钥进行加解密的时候就出现了问题,加密后解密的内容与原来的密钥不匹配,缺失的部分位数,其中有部分值还发生的改变。
    分析问题:对于原先的.txt文件是一个文本文件,可以直接进行读取,但是可能密钥存放的.dat文件是个二进制文件,在读取的环节出现了问题。但是还没能够解决问题。

    Java实验五的更多相关文章

    1. 20165310 Java实验五《网络编程与安全》

      20165310 Java实验五<网络编程与安全> 任务一 题目:①编写MyBC.java实现中缀表达式转后缀表达式的功能:②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表 ...

    2. 20165324 Java实验五 网络编程与安全

      20165324 Java实验五 网络编程与安全 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:何春江 学号:20165324 指导教师:娄嘉鹏 实验日期:2018年5月28日 实 ...

    3. 2018-2019-2-20175323 java实验五 网络编程与安全

      20175323 java实验五 网络编程与安全 任务一 ①编写MyBC.java实现中缀表达式转后缀表达式的功能 ②编写MyDC.java实现从上面功能中获取的表达式中实现后缀表达式求值的功能 基本 ...

    4. 20165326 java实验五

      实验五 网络编程与安全 一.实验内容 任务一: 结对实现中缀表达式转后缀表达式的功能 MyBC.java 结对实现从上面功能中获取的表达式中实现后缀表达式求值的功能,调用MyDC.java 这个代码在 ...

    5. java实验五——字符数组、String、StringBuffer的相互转化,StringBuffer的一些方法

      package hello; import java.util.Scanner; public class 实验五 { public static void main(String[] args) { ...

    6. java实验五实验报告

      一.实验内容 Cmp传输与加解密 结对编程,一人服务器,一人客户端,服务器向客户端发送经RSA加密的密钥和用密钥加密的密文(使用DES算法),客户端负责接收加密后的密钥和密文,并解密得出明文. 二.实 ...

    7. Java实验五网络编程与安全

      实验五 网络编程与安全 实验准备 博客 活动一 两人一组结对编程: 0. 参考http://www.cnblogs.com/rocedu/p/6766748.html#SECDSA 1. 结对实现中缀 ...

    8. 第七周学习总结&JAVA实验五报告。

      JAVA实验报告五: 实验四 类的继承 实验目的 理解抽象类与接口的使用: 了解包的作用,掌握包的设计方法. 实验要求 掌握使用抽象类的方法. 掌握使用系统接口的技术和创建自定义接口的方法. 了解 J ...

    9. Java实验五参考答案

      1.找错误 btOK.setOnAction( new EventHandler<ActionEvent> { public void handle (ActionEvent e) { S ...

    随机推荐

    1. AAS代码运行-第4章

      [root@node1 aas]# ls ch02 ch03 spark--bin-hadoop2. spark--bin-hadoop2..tgz [root@node1 aas]# cd spar ...

    2. 管理分支:git branch

      新建分支的意义: 创建一个单独的工作分支,避免对主分支master造成太多的干扰,也方便与他们交流协作. 进行高风险的工作时,创建一个实验性的分支,扔掉一个烂摊子总比收拾一个烂摊子好得多. 合并别人工 ...

    3. Ruby Cucumber环境

      1.http://rubyinstaller.org/downloads 下载rubyinstaller以及developmentkit(注意版本号要对应) 2.安装rubyinstaller以及解压 ...

    4. C++虚函数的陷阱

      首先看一段代码: class B { public: ) { std::cout << "base fun called, " << i; }; }; cl ...

    5. 杭电ACM1002

      原题:http://acm.hdu.edu.cn/showproblem.php?pid=1002 #include <stdio.h> #include <string.h> ...

    6. vps推荐之DigitalOcean

      作为一个爱折腾的网站”程序猿“,我用过多家vps,由于一般支持paypal 月付, 所以基本上都会用两三个月,不行就换另一家. 1.Yard VPS 台湾人开的,有中文支持,貌似也支持支付宝付款,偶尔 ...

    7. PreparedStatement

      PreparedStatement > 它是Statement接口的子接口: >强大之处: 防SQL攻击: 提高代码的可读性.可维护性: 提高效率! l 学习PreparedStateme ...

    8. C# Lamada表达式

      Lambda表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托 ...

    9. Selenium之(二)Junit单元测试框架

      书目-selenium 实战宝典 章节:第七章 p63-73 1.被测程序 2.测试代码 3.多个测试类整合到一起 4.运行查看结果

    10. Mybatis 源码分析--crud

      增加源码分析-insert() --------------------------------------------------------------------- public int ins ...