ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:28KB ,
资源ID:1794689      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1794689.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(聊天程序具体模块实现分析.doc)为本站会员(99****p)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

聊天程序具体模块实现分析.doc

1、聊天程序具体模块实现分析摘要: 随着网络的迅速发展,人们交流的方式也受到网络的巨大影响。越来越多的人们选择了网络聊天,通常聊天程序的主要系统主要包括以下四个模块:聊天程序模块、保密性模块、完整性模块、防抵赖模块。详细介绍了聊天程序的具体模块实现过程。 关键词: 聊天程序;模块;实现 中图分类号:TB 文献标识码:A 文章编号:16723198(2013)02018602 0 引言 VC+6.0 为 Windows 环境下的网络考法提供了强大的工具,而其中的Csocket 控件就是其中之一。某聊天程序就是利用 Csocket 控件实现聊天程序的,它使得程序的实现变得相对简单。通常聊天程序分为四大

2、模块:聊天工具模块、保密性模块、完整性模块和防抵赖模块,以下详细介绍了这四大模块的具体实现过程。 1 聊天工具模块的实现 某聊天程序是建立在 UDP 的基础之上的,完成与远程计算机的通信,它通过与现在内部封装了所有的技术细节,并提供访问 UDP 网络服务的方便途径。只需要设置控件的属性并调用其方法就可以轻易实现与远程计算机的连接,并且可以实现双向的交换数据,而且不需要了解 UDP 的细节或者调用低级的 Winsock API。 此程序运行过程如下:在进行聊天的数据传输前(也就是广播) ,服务期先运行,等待客户端连接。客户端运行后首先要连接到服务器,输入服务器的 IP 地址和连接的端口号(本程序

3、默认为:4000)后开始连接。如成功会响应连接成功,反之响应连接失败,而后客户端皆可以后到广播的消息了。在服务器一端,没有以客户连接服务器,服务器上就会监听即提示相关信息,议题是由客户连接。服务器输入要广播的内容后就可以发送了,所有连接到服务器上的客户都会接收到信息。下面分别对于各个类、成员函数和响应函数进行介绍。 CMessag 类主要是用于封装消息的,目的是重载 Serialize()函数对 CArchive 对象进行串行化,CArchive 对象存储着接收到和将要发送的数据,因此,CMessag 类也就是对聊天内容进行封装的,而串行化便于接受和发送的。 自定义类 CserverSocke

4、t,在 ClassView 视图中右键单击“ChatDemo Classes”,选择“New Class”,弹出的“New Class”对话框。 “Class Type”为 MFC class, “Name”为 CServerSocket, “Base Class”为CSocket,单击“OK”完成添加。CServerSocket 类主要是用于重载CSocket 类中 OnAccept 函数,负责接受客户端的连接。在此函数调用主对话框类的 ProcessPendingAccpt 函数处理连接请求。 在主对话框类中的几个主要的成员函数: ProcessPendingAccept()函数:在 CS

5、ocket 子类的 OnReceive 函数中被调用,起作用是对接收到的对方的连接请求进行处理; ClearContent()函数:用于清空变量,包括 Socket 对象和聊天数据; CloseSessionSocket()函数:用于关闭服务器和客户端会话的Socket 连接。 控件的消息响应函数。 2 保密性模块的实现 DES 程序是通过宏定义可选择小代码模式后者选择大打代码模式。在大代码模式下,程序定义了多个表,从而使 DES 算法中的很多运算都可以通过查表实现,速度较快,但要求有较多的存储空间;在小代码模式下,可以不查表,从而节省了存储空间,但是速度较慢。DES 算法主要是在工程中 yx

6、yDES.h 和 yxyDES.cpp 两个文件,下面主要简单介绍下其主要的几个函数。 加密解密时主要用到下面 5 个函数: int des_setup(congest unsight char *key,int keylen,int num_rounds,des_key *skey) 函数名:密钥生成函数 功能描述:当密钥生成时,返回值为 CRYPT_OK(0) ,结果保留在skey 指向的结构体。结构体中的 ck 存储加密时用的子密钥,dk_存储解密时用的子密钥。结构体中用的 2 个 32 位整数来存储一轮 48 位密钥,每一个 32 位整数被分成 4 个 8 位,每个 8 位的第 6 位

7、存储密钥。如果把48 位密钥分成 8 组,则这 8 组按存储的顺序从高到低为1、3、5、7、2、4、6、8。这样做是为了加密时可以把扩展和查表运算结合进行。 void des_ecb_ebcrypt(const unsigned char *pt,unsight char *ct,des_key *key) 函数名:加密函数。 功能描述:主要是是对明文进行加密,加密成功时,返回CRYPT_OK。 Void des_ecb_decrypt(const unsigned char *ct,unsigned char *pt,des_key *key) 函数名:解密函数。 功能描述:主要是对密文进行

8、解密,解密成功时,返回 CRYPT_OK。 int des_test(void) 函数名:测试函数。 功能描述:这个函数用来对加密算法进行测试。函数体内部定义了对应的明文和密文数组,并且进行了多轮加密和解密。 int des_keysize(int *desired_keysize) 函数名:密钥长度检验函数。 功能描述:初始化密钥的长度,对其进行检验。当密钥长度小于密钥长度时,返回值 CRYPT_INVALID_KEYSIZE,否则,desired_keysize 指向的变量被置为 8。 3 完整性模块的实现 在完整性模块中,主要是采用的 MD5 加密算法,主要是工程文件中的 MD5.h 和

9、 MD5.h 两个文件中。下面简单的介绍用到的结构体变量和函数程序中用到的结构体变量和程序用到的函数如下: void md5_init(md5_state *md) 函数名:初始化函数 功能描述:主要是初始化 md5 算法,在程序中使用的“12345678”初试化的。 int md5_process(md5_state *md,const unsigned char *buf,unsigned long len) 函数名:处理函数 功能描述:这个函数对待处理的信息以 512 位为单位进行压缩,不足的部分存储在结构体的 buf 中,并且 len 来标识信息的末尾,这样下次调用时会接着上一次的结果

10、进行。 int md5_done(md5_state *md,unsigned char *Hash) 函数名:完成函数 功能描述:这个函数对未完成的信息先进行 padding 操作,然后处理,并把最终结果存在 Hash 指向的缓冲区中。 int md5_test(void) 函数名:测试函数 功能描述:这个函数对上面的 3 个函数进行测试。函数内部定义了一组信息和 Hash 结果一一对应的数组。通过调用上面的 3 个函数,并把结果和正确的结果相比较,可以判断程序正确与否,这个函数主要在模块的调试中很重要。 4 防抵赖模块的实现 主要是利用数字签名技术实现的,在这里主要是介绍 RSA 算法中相

11、关函数以及使用到的类,完成 RSA 算法主要是工程文件的 bigint.h 和rsa.h 两个文件实现的。主要用的函数如下: bool small_prime_test(bigint) 函数名:2000 以内小素数检验 功能描述:用于判断是否是 2000 以内的小素数。 bigint get_prime(void) 函数名:Rabin-Miller 素性检验 功能描述:主要是检测随机生成的数是否满足,且检验次数达到ROUND 次才算通过检验。 bigint get_random() 函数名:获得随机数 功能描述:主要是生成 p,q,e 时调用,随机生成大素数。 bigint qmod(bigi

12、nt a,bigint b,bigint c) 函数名:快速模乘 功能描述:主要是在加密和解密时调用,计算一个数模乘。 void Encryption(bigint e,bigint N) 函数名:加密函数 功能描述:完成对明文 M 的加密,生成密文 C,并且将密文存在miwen.txt 文档中。 void Decryption(bigint d,bigint N) 函数名:解密函数 功能描述:完成对密文 C 的解密,生成明文 M,并且将明文存在文档ingwen.txt 中。 5 结束语 本文主要就具体的程序的设计进行的实现,包括相应的结构体和函数等。然而,在实际程序的设计中很多的工程文件,涉及很多的功能函数和很多的结构体以及聊天程序的个性化设计。 参考文献 1刘晓敏.厦门卫视非编网络安全设计与实现D.上海:上海交通大学,2008. 2邓奇强.网络安全技术及其发展趋势J.怀化学院学报,2005, (4). 3李彦旭,巴大志,成立.网络信息安全技术综述J.半导体技术,2002, (10).

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。