20145230实验五 Java网络编程及安全

实验内容

  1. 掌握Socket程序的编写;
  2. 掌握密码技术的使用;
  3. 设计安全传输系统。

    实验步骤

    本次实验我负责编写客户端代码的编写,以下是我实验进行的步骤:
    建立客户端网络连接,也就是创建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语言最重要的是掌握方法与架构,那些具体的函数与语句不是完全明白也可以应用它们。基本上会对网络编程有个大概的印象,当然其中的细节我们不一定能掌握的非常透彻,还需继续摸索。

最新文章

  1. MySql 数据库导入到 SQL Service
  2. iOS开发--利用MPMoviePlayerController播放视频简单实现
  3. JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式
  4. 微型 ORM-FluentData 温故知新系列
  5. (基础篇)PHP与JavaScript交互
  6. Nova分析(1)——整体架构
  7. [HTML/CSS]display:none和visibility:hidden的区别
  8. P次方数 英雄会 csdn 高校俱乐部
  9. SQL中两种表复制语句
  10. python是如何进行内存管理的
  11. Ordering犀利的比较器
  12. BZOJ4036 按位或
  13. EasyUI-datebox设置开始日期小于结束日期,并且结束日期小于当前日期
  14. django 处理静态文件
  15. ActiveMQ安装使用
  16. [CTCI] 双栈排序
  17. handlermethodargumentresolver
  18. /boot/grub/grub.conf 内容诠释
  19. js实现水平伸缩菜单
  20. Vim中增加ga键的vmap功能

热门文章

  1. Android 图片压缩的方法大全
  2. 安装VC6.0遇到的问题
  3. 安装ruby环境
  4. poj 2516(拆点+最小权匹配)
  5. Rightscale & Amazon
  6. Eclipse集成resin服务器
  7. Android Studio使用百度地图问题总结
  8. TFS2013安装与使用图文教程
  9. PHP输出语句大杂烩
  10. C++STL容器(lower_bound,upper_bound)