加密聊天软件(技术文档)

本文档详细介绍了加密聊天软件的设计与实现,包括通信模型、客户端与服务器端的交互、登录注册流程、文件传输机制、信息编解码以及安全加密。软件采用点对点通信模式,通过服务器中转确保安全,支持大型文件点对点传输,提供多种加密解密选项,适用于高安全性通信需求。此外,还探讨了软件的可扩展性,如文件拖动发送、图像和音频传输等。
摘要由CSDN通过智能技术生成

一、 通信模型

1.1 信息传输

软件由两个主要部分组成:客户端和服务器端。两个客户端之间不是直接连接的,而是通过服务器沟通,一个客户端可以同时和多个其它客户端通信,框图如下:

图1 聊天软件模型

服务器对客户端接收的信息处理并派发给接收信息的客户端,服务器为每个客户端分配唯一ID,作为用户的唯一标志。客户端与服务器之间实现双向通信,加密和解密都是在客户端实现的,可以根据用户的选择自动设置加密解密。

1.2 文件传输

       文件传输分为大型文件传输和小型文件传输(在程序中以2M分界),对小型文件的传输,是通过服务器转发的。对大型文件而言,为了节省传输时间,文件传输请求和接收请求通过服务器转发,之后将失去中转权,所有大型文件(理论上可传输超过1000G的文件)都将实行点到点的通信模式。

 

 

 

图2 文件传输模型

       如图2所示,无论是大型文件,还是小型文件,都必须首先经过1—2—3—4路径。文件发送请求信息包括文件名、文件大小、接收该文件的ID,发送文件的ID信息,服务器对文件请求指令中的文件大小作判断,如果文件属于小型文件(小于2M),则文件开始传输,路径为6—7(图中的绿色路径)。反之,如果是大型文件,则文件传输的路径为5(图中的红色路径)。无论是大型文件还是小型文件,传输和接收都在心开辟的线程中执行,不会影响消息通信。

       软件可应用于所需安全性较高的通信场合,如高科技技术交流,国家机密文件传输等等

二、客户端

2.1 主界面

客户端由多个Dialog控件组成,登录主界面中使用了ListControl控件,控件中每个Item保存了一个用户的信息,包括用户名和ID。在ListControl控件中处理双击事件,当用户双击某个Item的时候,生成新的Dialog,用于与用户传递信息。Menu栏报还了常用操作,包括“发送信息”、“添加好友”、“更改信息”、“注册用户”、“退出”。其中的“添加好友”、“更改信息”、“注册用户”三项是与服务器互动的形式完成的,即响应这些菜单后,会向服务器发送相信的信息,服务器处理信息并返回结果给客户端。。

2.2登录界面

初次登录

用户输入信息后,保存用户信息到LOGINFO结构体,此结构体保存了用户的登录信息,包包括ID,NAME,服务器IP,端口等。点击登录界面的“ok”通过指定端口向指定ip发送LogIn信息,表示请求登录,如果服务器收到客户端的LogIn请求,开始验证用户信息,包括检测用户密码和用户ID,如果两者匹配,向客户端返回LogIn信息,提示用户登录成功(图3)。如果用户登录成功,设置用户登录状态为TRUE。如果客户端发出LogIn消息之后没有收到消息或者收到服务器的登录错误消息,客户端将不能登录。

图3 登录界面

 重新登录

当前在线用户再次点击登录按键之后,会再次弹出登录窗口,用户输入信息并发出请求之后,会收到服务器的返回LogIn信息。客户端会提示用户是否更改用户登录(图4),选择“是”则新用户登录,并更新LOGINFO结构体对象,选择“否”返回,设置用户窗体相关信息并设置登录状态为FALSE。

图4 提示更换用户界面

2

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值