20145324 Java实验五

java

1.运行教材上TCP代码,结对进行,一人服务器,一人客户端;

2.利用加解密代码包,编译运行代码,一人加密,一人解密;

3.集成代码,一人加密后通过TCP发送;

注:加密使用AES或者DES/AES或者DES加密密钥key并发送,使用服务器的公钥加密/公钥算法使用RSA或DH/检验发送信息的完整性使用MD5或者SHA3;

4.用Git进行版本控制。

5.完成Blog

结对伙伴:20145315何佳蕾

博客地址:http://www.cnblogs.com/5315hejialei/

我负责客户端,她负责服务器

客户端代码:

、、、

import java.net.;

import java.io.;

import javax.crypto.;

import java.security.;

import javax.crypto.Cipher;

public class MyClient {

/**

* @param args the command line arguments

*/

public static void main(String args[]) throws Exception {

KeyGenerator kg=KeyGenerator.getInstance("DESede");

kg.init(168);

SecretKey k=kg.generateKey( );

FileOutputStream f=new FileOutputStream("key1.dat");

ObjectOutputStream b=new ObjectOutputStream(f);

b.writeObject(k);

BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));

System.out.print("请输入待发送的数据:");

String srt=stdin.readLine();

FileInputStream d=new FileInputStream("key1.dat");

ObjectInputStream a=new ObjectInputStream(d);

Key e=(Key)a.readObject( );

Cipher cp=Cipher.getInstance("DESede");

cp.init(Cipher.ENCRYPT_MODE, e);

byte ptext[]=srt.getBytes("UTF8");

for(int i=0;i<ptext.length;i++){

}

System.out.println("");

byte ctext[]=cp.doFinal(ptext);

for(int i=0;i<ctext.length;i++){

}

FileOutputStream f2=new FileOutputStream("SEnc.dat");

f2.write(ctext);

try {

Socket socket = new Socket("172.20.10.4", 1105);

Socket socket1 = new Socket("172.20.10.4", 1106);

BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

PrintWriter out1=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);

System.out.print("读取文件中...\n");

FileInputStream f1=new FileInputStream("key1.dat");

FileInputStream f3=new FileInputStream("SEnc.dat");

String str;

out.println(f1);

out1.println(f3);

System.out.print("已发送\n");

str=in.readLine();

System.out.println( "从服务器接收到的结果为:"+str);

}

catch (Exception v) {

System.out.println(v);

}

finally{

}

}

}

、、、

运行结果

);

实验总结

这次实验看起很简单,但是实际操作起来还是遇到不少困难,特别是连接传输的时候,总是显示连接超时,问同学百度了许久才才找到解决方法。

步骤 耗时 百分比

需求分析 1h 16.7%

设计 1h 16.7%

代码实现 2h 33.2%

测试 1h 16.7%

分析总结 1h 16.7%

以上是 20145324 Java实验五 的全部内容, 来源链接: utcz.com/z/394604.html

回到顶部