您的位置:首页 > 理论基础 > 计算机网络

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)时间

步骤耗时百分比
需求分析20min11.1%
设计30min16.7%
代码实现60min33.3%
测试40min22.2%
分析总结30min16.7%

总结

这次试验内容比较有意思,我第一次真正实现了,所谓的加密解密的传输,能将所学知识应用在实际还是非常有意义的一件事情。而且本次试验内容有多门学科的交叉,涵盖了密码学、计算机网络以及java的应用。可以更加有助我们对知识的融会贯通。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: