java实训中遇到的困难及解决 java实验报告遇到的问题 |
您所在的位置:网站首页 › java实验遇到的问题及解决 › java实训中遇到的困难及解决 java实验报告遇到的问题 |
课程:Java程序设计 班级:1351 姓名:王玮怡 学号:20135116 成绩: 指导教师:娄嘉鹏 实验日期:2015.6.9 实验密级: 预习程度: 实验时间:15:20-18:00 仪器组次:11 必修/选修: 实验序号:5 实验名称: TCP传输及加解密 实验内容: 1.运行教材上TCP代码,结对进行,一人服务器,一人客户端; 2.利用加解密代码包,编译运行代码,一人加密,一人解密; 3.集成代码,一人加密后通过TCP发送; 注:加密使用AES或者DES/AES或者DES加密密钥key并发送,使用服务器的公钥加密/公钥算法使用RSA或DH/检验发送信息的完整性使用MD5或者SHA3; 4.用Git进行版本控制。 5.完成Blog
实验仪器: 名称 型号 数量
Macbook Air(win7系统) 1
结对伙伴:20135109高艺桐, 博客地址: 我负责服务器,她负责客户端 一、代码
服务器: import java.net.*; import java.io.*; import java.security.*; import javax.crypto.*; import javax.crypto.spec.*; public class MyServer { /** * @param args the command line arguments */ public static void main(String args[]) { ServerSocket sc = null; ServerSocket sc1 = null; Socket socket=null; Socket socket1=null; try { sc= new ServerSocket(4431);//创建服务器套接字 sc1= new ServerSocket(4430);//创建服务器套接字 System.out.println("端口号:" + sc.getLocalPort()); System.out.println("服务器1已经启动..."); System.out.println("端口号:" + sc1.getLocalPort()); System.out.println("服务器2已经启动..."); socket = sc.accept(); //等待客户端连接 System.out.println("已经建立连接"); socket1 = sc1.accept(); //等待客户端连接 System.out.println("已经建立1连接"); //获得网络输入流对象的引用 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); BufferedReader in1 = new BufferedReader(new InputStreamReader(socket1.getInputStream())); ////获得网络输出流对象的引用 System.out.print("已接收\n"); PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true); String aline=in.readLine();//读取客户端传送来的数据 String aline1=in1.readLine(); System.out.print("写入文件中...\n"); byte [] bytes = aline.getBytes("GB2312"); byte [] bytes1 = aline1.getBytes("GB2312"); aline = new String(bytes, "GB2312"); aline1 = new String(bytes1, "GB2312"); FileOutputStream s=new FileOutputStream("key1.dat"); s.write(bytes); FileOutputStream s1=new FileOutputStream("SEnc.dat"); s1.write(bytes1); System.out.print("已写入文件\n"); //生成解密密钥 FileInputStream f=new FileInputStream("key1.dat"); ObjectInputStream b=new ObjectInputStream(f); Key k=(Key)b.readObject( ); byte[ ] kb=k.getEncoded( ); FileOutputStream f2=new FileOutputStream("keykb1.dat"); f2.write(kb); System.out.print("生成解密密钥\n"); // 打印密钥编码中的内容 for(int i=0;i |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |