zoukankan      html  css  js  c++  java
  • 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);
    
        }
    }
    
  • 相关阅读:
    伟东云学堂—几何画板学习
    京北鲤鱼----创客教育
    几何画板学习网站
    快乐的搬运工
    少儿编程网
    科技学堂 Arduino轻松学
    跟张老师学硬件arduino板
    科技学堂 Arduino传感器入门
    巧办网
    项目:git+gitlab+jenkins+ansible上线网站
  • 原文地址:https://www.cnblogs.com/20145106ssr/p/5472172.html
Copyright © 2011-2022 走看看