20145230《java程序设计》第五次实验报告
20145230实验五 Java网络编程及安全
实验内容
- 掌握Socket程序的编写;
- 掌握密码技术的使用;
设计安全传输系统。
实验步骤
本次实验我负责编写客户端代码的编写,以下是我实验进行的步骤:
建立客户端网络连接,也就是创建Socket类型的对象,因此,我先创建一个socket对象,Socket socket = new Socket("192.168.43.246", 10001);这里socket实现的是连接到IP地址为192.168.43.246的10001号端口(端口号任意指定),需要特别说明的是,这里的IP地址指的是服务器电脑的IP地址,端口号也要与服务器上的端口号保持一致。这里提供一个查询IP地址的方法,打开命令提示符,输入指令ipconfig,找到你现在所使用的网络,显示的IPv4地址就是你的电脑现在使用的IP地址。由于我们需要进行安全传输,所以在传输过程中还要对数据进行加密,一般来说,采用对称性加密算法与非对称性加密算法结合的方式安全性要更高,因此这里我先用的是RSA算法,用服务器的公钥先对DES的密钥进行加密,然后将加密后的密钥传给服务器,接着让用户输入需要传输的明文,再使用DES算法对明文进行加密,将加密后的密文通过网络传到服务器,然后计算明文的Hash值,传送到服务器。服务器总共会收到来自客户端发送的DES的密钥、密文以及明文的Hash值,服务器会采用RSA公钥密码中服务器的私钥解密DES的密钥,接着用解密后的DES的密钥对密文进行解密,得到明文。服务器再将解得的明文计算Hash值,检查其是否与传过来的Hash值一致,如果一致说明匹配成功。
总结
这次实验从都不会做,到一点点探究,一点点学习,最终做出不甚完美,但结果正确的代码还是很有收获的。我从中学会了IO流传输以及文件的存储与读取。而且在这次试验中,我并不太了解老师打包发给我们的密码算法的每一条语句,但是把他们筛选整合,拼凑到一个代码中的技能却掌握了,学习java语言最重要的是掌握方法与架构,那些具体的函数与语句不是完全明白也可以应用它们。基本上会对网络编程有个大概的印象,当然其中的细节我们不一定能掌握的非常透彻,还需继续摸索。
最新文章
- MySql 数据库导入到 SQL Service
- iOS开发--利用MPMoviePlayerController播放视频简单实现
- JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式
- 微型 ORM-FluentData 温故知新系列
- (基础篇)PHP与JavaScript交互
- Nova分析(1)——整体架构
- [HTML/CSS]display:none和visibility:hidden的区别
- P次方数 英雄会 csdn 高校俱乐部
- SQL中两种表复制语句
- python是如何进行内存管理的
- Ordering犀利的比较器
- BZOJ4036 按位或
- EasyUI-datebox设置开始日期小于结束日期,并且结束日期小于当前日期
- django 处理静态文件
- ActiveMQ安装使用
- [CTCI] 双栈排序
- handlermethodargumentresolver
- /boot/grub/grub.conf 内容诠释
- js实现水平伸缩菜单
- Vim中增加ga键的vmap功能