安全算法在p2p聊天程序中的应用

安全算法在p2p聊天程序中的应用

ID:31534435

大小:126.02 KB

页数:12页

时间:2019-01-13

安全算法在p2p聊天程序中的应用_第1页
安全算法在p2p聊天程序中的应用_第2页
安全算法在p2p聊天程序中的应用_第3页
安全算法在p2p聊天程序中的应用_第4页
安全算法在p2p聊天程序中的应用_第5页
资源描述:

《安全算法在p2p聊天程序中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、安全算法在P2P聊天程序中的应用一.实验目的本实验主要在P2P聊天程序中添加DES和SHA算法以使聊天过程中传输的数据是安全的。练习本实验的目的有以下几个方面:(1)掌握WINDOWSSOCKETAPI编程,能比较熟练的使用SOCKETAPI函数,深刻理解C/S模式;(2)掌握应用程序开发的一般流程;(3)另一方面深刻理解DES和SHA加密算法的原理和应用场合。二.程序流程图由于本软件无论客户端还是服务端都是同样的程序,因而软件的源代码的主要流程图与经典的客户端/服务器模式的流程图有些区别。下面给出了程序大致流程

2、图:开始Socket()Bind()Listen()未连接成功Connect()连接成功没有消息Accept()创建线程Recv()创建线程Send()Close()下面对上面的流程图作如下解释:程序启动后,先创建侦听套接字,然后绑定侦听套接字,接着进行侦听,上述步骤是典型服务器端的步骤。接着,创建创建一个客户端套接字,并与从窗口获取的服务器IP和端口进行连接。该步骤是典型客户端步骤。如果连接失败,说明本机作为服务器端,接着进行典型服务器端的操作Accept(),有连接消息则建立接收和发送线程。如果在Connec

3、t()时是成功的,则说明本机是客户机,接着进行的客户端的典型操作(即建立接收和发送线程)。通过上述步骤将客户端和服务器端的融合,就实现了客户端和服务器端的软件是同一个软件。而加解密算法分别添加到发送和接收线程调用的函数中。一.程序详细设计1.建立MFC工程中后,主要添加的文件及相关文件的解释建立MFC工程后,主要添加了MySocket.cpp,Des.cpp,Sha.cpp,sha1.cpp以及对应的文件和Stdin.h。下面对这些文件中的主要函数进行解释:MySocket.cpp和MySocket.h文件:文件

4、中主要定义了了MySocket类,该类继承CSocket类,并对以下函数进行重载:voidCMySocket::OnReceive(intnErrorCode){MessageBox(NULL,"有客户端信息","",MB_OKCANCEL);CSocket::OnReceive(nErrorCode);}voidCMySocket::OnConnect(intnErrorCode){MessageBox(NULL,"有客户端连接","",MB_OKCANCEL);CSocket::OnConnect(nErro

5、rCode);}voidCMySocket::Init(CChatDlg*dlg){dlg=dlg;}Des.cpp及Des.h文件:文件主要实现了DES加解密算法,并提供了一个统一的接口函数。boolDes_Go(char*Out,char*In,longdatalen,constchar*Key,intkeylen,boolType)该接口函数中参数说明:Out指向加解密后的字符串存放的位置;In指向需要要加解密字符串存放的位置;Datalen表示要加解密字符串的数据长度;Key表示加解密时所要用的密钥;Ke

6、ylen表示密钥长度;Type表示进行操作的类型:ENCRYPT表示加密,DECRYPT表示解密。Sha.cpp及Sha.h文件:文件主要通过调用sha1.cpp中的函数来实现SHA算法,并提供一个统一的接口函数。voidshaEncrypt(char*inputBuff,uint8_t*Message_Digest);该接口函数中参数说明:inputBuff指向需要进行摘要操作的字符串。Message_Digest指向进行摘要操作之后存放摘要的位置。Sha1.cpp,sha.h以及Stdin.h文件:上面三个文

7、件都是为Sha.cpp服务的。其中Stdin.h中主要是对进行一些数据类型的重新定义,使人在阅读代码时更加直观。Sha1.cpp和Sha1.h文件定义了一些数据结构及一些函数等:typedefstructSHA1Context{uint32_tIntermediate_Hash[SHA1HashSize/4];/*MessageDigest*/uint32_tLength_Low;/*Messagelengthinbits*/uint32_tLength_High;/*Messagelengthinbits*//

8、*Indexintomessageblockarray*/int_least16_tMessage_Block_Index;uint8_tMessage_Block[64];/*512-bitmessageblocks*/intComputed;/*Isthedigestcomputed?*/intCorrupted;/*Isthemessagedigestcorrupt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。