20145301实验五 Java网络编程及安全
2016-05-08 23:15
495 查看
北京电子科技学院(BESTI)实验报告
课程:Java程序设计
班级:1453
指导教师:娄嘉鹏
实验日期:2016.05.06 18:30-21:30
实验名称:实验五 Java网络编程
实验内容
1.用书上的TCP代码,实现服务器与客户端。2.客户端与服务器连接
3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务器的公钥加密,计算明文的Hash函数值,一起传送给客户端
4.客户端用RSA公钥密码中服务器的私钥解密DES的,秘钥,用秘钥对密文进行解密,得出明文。计算求得明文的Hash函数值,检查是否与传送过来的一致,如果一直,则表示匹配成功。
实验步骤
实验步骤
本次实验我的小组成员是20145331魏澍琛,我负责编写客户端代码的编写,他负责服务器代码的编写。客户端的编程主要由三个步骤实现:建立网络连接、数据交换、关闭网络连接。首先我们要建立连接,在Java API中以
java.net.Socket类的对象代表网络连接,所以建立客户端网络连接,也就是创建Socket类型的对象,并找出电脑现在使用的IP地址,如图所示:
接着利用BufferedReader对象获得从服务器传来的网络输入流,用PrintWriter对象获得从客户端向服务器输出数据的网络输出流,用BufferedReader对象创建键盘输入流,以便客户端从键盘上输入信息。
由于我们需要进行安全传输,所以在传输过程中还要对数据进行加密,一般来说,采用对称性加密算法与非对称性加密算法结合的方式安全性要更高,因此这里先用的是RSA算法,用服务器的公钥先对DES的密钥进行加密,然后将加密后的密钥传给服务器,接着让用户输入需要传输的明文,再使用DES算法对明文进行加密,将加密后的密文通过网络传到服务器,然后计算明文的Hash值,传送到服务器。服务器总共会收到来自客户端发送的DES的密钥、密文以及明文的Hash值,服务器会采用RSA公钥密码中服务器的私钥解密DES的密钥,接着用解密后的DES的密钥对密文进行解密,得到明文。服务器再将解得的明文计算Hash值,检查其是否与传过来的Hash值一致,如果一致说明匹配成功。
客户端的代码:
实验结果如图所示:
发送:
接收:
实验中遇到的问题及解决过程
一开始运行弹出找不到指定文件的错误:解决过程:
用了RSA的公钥文件,在拷贝时拷贝错了目录,应该把
Skey_RSA_pub.dat文件拷到工程中与src同级的目录下即可。
PSP(Personal Software Process)时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 20min | 11.1% |
设计 | 30min | 16.7% |
代码实现 | 60min | 33.3% |
测试 | 40min | 22.2% |
分析总结 | 30min | 16.7% |
总结
这次试验内容比较有意思,我第一次真正实现了,所谓的加密解密的传输,能将所学知识应用在实际还是非常有意义的一件事情。而且本次试验内容有多门学科的交叉,涵盖了密码学、计算机网络以及java的应用。可以更加有助我们对知识的融会贯通。相关文章推荐
- java从0开始学习第十三课-网络编程就是一只小老虎
- 20159217《网络攻防实践》第十周学习总结
- 20145215刘俊谦实验五 Java网络编程及安全
- JAVA第十周《网络编程》学习内容总结
- 20145203 实验五 Java网络编程及安全
- 20145225《Java程序设计》 实验五 Java网络编程及安全
- java网络编程serversocket
- 网络编程
- java网络编程socket解析
- 常见HTTP错误代码大全
- 介绍NSURLSESSION网络请求套件
- 设置linux开发板上电自动设置网络配置
- 机器学习第九周作业使用R语言建立BP神经网络
- 20145311实验五"Java网络编程及安全"
- 开源的人工神经网络计算库 FANN 学习笔记 1
- 开源的人工神经网络计算库 FANN 学习笔记 1
- 20159313网络攻击与防范第十周学习总结
- 20145312 实验五 《Java网络编程》
- HTTP Header详解(转载)
- 20145312 实验五《Java网络编程》