博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络安全实验_基于通信加密的聊天工具
阅读量:6476 次
发布时间:2019-06-23

本文共 1107 字,大约阅读时间需要 3 分钟。

  简单的思路就是客户端、服务器端通过RSA公钥交换,进而服务器将使用客户端RSA公钥加密后的DES密钥传递给客户端,从而完成密钥交换,在通信过程中使用DES密钥对明文,以及使用对方公钥产生明文的数字签名进行加密,从而实现秘密通信与数据一致性检验。

  未实现身份认证的功能,当第三方截取客户端发送给服务器端的公钥,并发送给客户端自己的公钥与DES密钥时,可以冒充服务器端与客户端进行通信。


初始化服务器端
  1. 初始化UI页面
  2. 生成服务器端RSA私钥公钥
  3. 生成DES密钥
  4. 启动3个服务器端口(msgPort,RSAPort,DESPort)
    1.   msgPort用于接发信息
    2.   RSAPort用于接收客户端发送过来的客户端公钥,以及用于发送服务器端的公钥
    3.   DESPort用于发送DES密钥(由客户端RSA公钥加密后)
  5. 启动2个线程(KeyThread,RecThread)
    1. KeyThread
      1. 初始化
      2. 启动
        1. 发送服务器端的RSA公钥
        2. 发送由客户端公钥加密过的DES密钥
    2. RecThread
      1. 初始化
      2. 启动
      3. 循环{
        1. 接收并用DES密钥解密客户端端发送过来的密文
        2. 接收并用DES密钥解密客户器端发送过来的MD5数字签名
        3. 对明文做一致性检验(客户端公钥以及明文作为输入)}  
服务器端发送Buttion绑定事件
  1. 生成明文MD5数字签名(明文,服务器端私钥作为输入)
  2. 对明文用DES密钥加密并发送
  3. 对数字签名用DES密钥加密并发送 
初始化客户端
  1. 初始化UI页面
  2. 生成客户端RSA私钥公钥 
客户端连接Button绑定事件
  1. 初始化3个socket(RSA,DES,MSG)
    1. MSGSocket用于接发加密信息
    2. DESSocket用于接发DES密钥(由客户端公钥加密)
    3. RSASocket用于接发服务器端公钥
  2. 初始化并启动2个线程(KeyThread,RecThread)
    1. KeyThread
      1. 初始化
        1. 发送给服务器客户端的RSA公钥
      2. 启动
        1. 接收服务器端的RSA公钥
        2. 接收由客户端公钥加密过的DES密钥并进行解密
        3. 保存客户端RSA公钥私钥,服务器端公钥,DES密钥
    2. RecThread
      1. 初始化
      2. 启动
        1.   循环{
          1. 接收并用DES密钥解密服务器端发送过来的密文
          2. 接收并用DES密钥解密服务器端发送过来的MD5数字签名
          3. 对明文做一致性检验(服务器公钥以及明文作为输入)} 
客户端发送Buttion绑定事件
  1. 生成明文MD5数字签名(明文,客户端私钥作为输入)
  2. 对明文用DES密钥加密并发送
  3. 对数字签名用DES密钥加密并发送 
                                 
源码下载地址:

转载于:https://www.cnblogs.com/hellomrk/p/3524097.html

你可能感兴趣的文章
U-BOOT之一:BootLoader 的概念与功能
查看>>
我的路上
查看>>
Velocity处理多余空白和多余空白行问题
查看>>
DB2与oracle有什么区别
查看>>
创建一个多级文件目录
查看>>
Picasa生成图片幻灯片页面图文教程
查看>>
js获取当前时间的前一天/后一天
查看>>
svn status 显示 ~xx
查看>>
常用HiveQL总结
查看>>
[转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
查看>>
POJ 3311 Hie with the Pie(状压DP + Floyd)
查看>>
Security updates and resources
查看>>
深入理解JavaScript系列(25):设计模式之单例模式
查看>>
DNS为什么通常都会设置为14.114.114.114
查看>>
Sqoop架构(四)
查看>>
golang copy函数
查看>>
《你有多少问题要请示》精华集粹
查看>>
leveldb学习:DBimpl
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>