实验名称: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); }
}

20145106java实验四的更多相关文章

  1. Oracle 实验四-七

    shutdown immediateORA-01097: 无法在事务处理过程中关闭 - 请首先提交或回退 解决:先 "commit" 实验四 SQL Production :: C ...

  2. php实验四

    实验四 1.创建一个Person类,Person中包含三个属性name,age,wealth,分别设置为public,private,protected,再定义Person类的子类Student. 2 ...

  3. 实验四 简单的PV操作

    实验四 简单的PV操作 专业 网络工程   姓名 方俊晖 学号 201406114309 一.        实验目的 1.掌握临界区的概念及临界区的设计原则: 2.掌握信号量的概念.PV操作的含义以 ...

  4. Java实验四

    20145113 Java实验四 快捷键 之前没怎么记ISDEA的快捷键,但是熟练使用快捷键可以带来很多的便利,于是先开始学习一些常用的快捷键,就采用它默认的快捷键,这样后期就不会出现冲突,一些and ...

  5. 20145316&20145229实验四:驱动程序设计

    20145316&20145229实验四:驱动程序设计 结对伙伴:20145316 许心远 博客链接:http://www.cnblogs.com/xxy745214935/p/6130871 ...

  6. 20145301&20145321&20145335实验四

    20145301&20145321&20145335实验四 这次实验我的组员为:20145301赵嘉鑫.20145321曾子誉.20145335郝昊 实验内容详见:实验四

  7. 20145212 实验四《Andoid开发基础》

    20145212 实验四<Andoid开发基础> 实验内容 安装Android Studio 运行安卓AVD模拟器 使用Android运行出模拟手机并显示自己的学号 实验过程 一.安装An ...

  8. Java实验四和实验五

    实验四 类的继承性和多态性 [开发语言及实现平台或实验环境] Windows2000 或XP,JDK1.6与Jcreator4.0 [实验目的] 1.  掌握OOP方式进行程序设计的方法, 2.  了 ...

  9. 20145213 《Java程序设计》实验四 Android开发基础

    20145213 <Java程序设计>实验四 Android开发基础 说在前面的话 不同以往实验,对于这次实验具体内容我是比较茫然的.因为点我,打开实验四的链接居然能飘出一股熟悉的味道,这 ...

随机推荐

  1. Solr学习笔记之6、Solr学习资源

    一.官方资源 1.官网:http://lucene.apache.org/solr/ 2.wiki:http://wiki.apache.org/solr/FrontPage 3.solr中文网:ht ...

  2. easyui-datagrid个人实例

    这个实例数据表格的功能,可以实现分页,增删改查功能 1.user.jsp <%@ page language="java" contentType="text/ht ...

  3. Find a way--hdu2612

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2612 广搜题 注意:可能存在一个@两人都不能达到: 3 3 Y#@ .M# @.. #include ...

  4. java-小技巧-001-Long序列化到前端js不支持

    1.引入:jackson-mapper-asl-1.9.2.jar 2.导入: import org.codehaus.jackson.map.annotate.JsonSerialize;impor ...

  5. windows使用git时出现:warning: LF will be replaced by CRLF的解决办法

    在Windows环境下使用git进行add的时候,会提示如下warning: “warning:LF will be replacee by CRLF”. 这是因为在Windows中的换行符为CRLF ...

  6. FM/FFM原理

    转自https://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html 深入FFM原理与实践 del2z, ...

  7. JS参差不齐的数组

    <html><head> <title>参差不齐的数组</title> <meta charset="utf-8"> & ...

  8. dedecms开启多站点

    dedecms开启多站点后,填写域名才能正确的地址 if ( ! function_exists('GetFileUrl')) { function GetFileUrl($aid,$typeid,$ ...

  9. OAuth 白话简明教程 1.简述

    转自:http://www.cftea.com/c/2016/11/6702.asp OAuth 白话简明教程 1.简述 OAuth 白话简明教程 2.授权码模式(Authorization Code ...

  10. sql可重复执行语句例子

    1.添加字段 SET @add_key_type_to_report = (SELECT IF( (SELECT count(1) FROM INFORMATION_SCHEMA.COLUMNS WH ...