20145106java实验四

实验名称:Java网络编程

实验内容:

1.掌握Socket程序的编写;

2.掌握密码技术的使用;

3.设计安全传输系统。

结对小伙伴

20145109竺文君 博客地址:

在本次实验中,是以我作为服务器,竺文君作为客户端进行的。

首先我和竺文君连在了同一个网络上,之后获得我电脑的IP

我们应用了相同的端口(port:4421)之后连接成功

她向我发送了:hellossr 并收到。

import java.net.*;
import java.io.*;
public class ComputeTCPServer{
        public static void main(String srgs[]) {
        ServerSocket sc = null;
        Socket socket=null;
          try {     //建立连接
            sc= new ServerSocket(4421);
            System.out.println("port:" + sc.getLocalPort());
            System.out.println("Server starts...");
            socket = sc.accept();
            System.out.println("Connection completes");

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

            PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
            
            String   aline=in.readLine();
            String k1 = in.readLine();
            System.out.println("Received info:"+aline);

            // out.println("Echo:" + aline);
            // out.close();
            // in.close();
            // sc.close();
          } catch (Exception e) {
            System.out.println(e);
          }

          //对密钥进行解密
          BigInteger c=new BigInteger(k1);

          FileInputStream f=new FileInputStream("Skey_RSA_priv.dat");
          ObjectInputStream b=new ObjectInputStream(f);
          RSAPrivateKey prk=(RSAPrivateKey)b.readObject( );
          BigInteger d=prk.getPrivateExponent();
          BigInteger n=prk.getModulus();
          // System.out.println("d= "+d);
          // System.out.println("n= "+n);

          BigInteger m=c.modPow(d,n);
          // System.out.println("m= "+m);

          //得到密钥
          byte[] mt=m.toByteArray();
          SecretKeySpec k=new  SecretKeySpec(keykb,"DESede");

          //用得到的密钥对密文进行解密
          byte[] ctext = aline.getBytes();
          Cipher cp=Cipher.getInstance("DESede");
          cp.init(Cipher.DECRYPT_MODE, k);
          byte []ptext=cp.doFinal(ctext);
          String p=new String(ptext,"UTF8");
          System.out.println(p);

    }
}
posted @ 2016-05-08 22:59  20145106ssr  阅读(275)  评论(1编辑  收藏  举报