【vc++精品源码栏目提醒】:网学会员为需要vc++精品源码的朋友们搜集整理了VC++基于DES小型数据安全传输系统 附源码 - 计算机理论相关资料,希望对各位网友有所帮助!
2010年《信息安全引论》课程报告 题目基于DES小型数据安全传输系统 学号 200700401010 姓名 李瑞典 班级__计071 日期 10-11-24 成绩 目录 第一章 概述 ........................................................................................... 3 第二章 系统需求分析 ........................................................................... 3 第三章 系统设计 ................................................................................... 3 第四章 调试与运行结果........................................................................ 4 第五章 总结和体会 ............................................................................... 6 第一章 概述 随着网络应用的普遍人们利用网络传输信息和数据已成为主要的途径。
但随着网络技术的发展网络信息传输的安全性就成为了我们关注的事情。
现在网络扫描和网络监听的手段越来越高明和多样化所以对网络传输的信息进行加密成为了信息安全传输的首选方法。
DES工作的基本原理其入口参数有三个:key、data、mode。
key为加密解密使用的密钥data为加密解密的数据mode为其工作模式。
当模式为加密模式时明文按照64位进行分组形成明文组key用于对数据加密当模式为解密模式时key用于对数据解密。
实际运用中密钥只用到了64位中的56位这样才具有高的安全性。
在通信网络的两端双方约定一致的Key在通信的源点用Key对核心数据进行DES加密然后以密码形式在公共通信网中传输到通信网络的终点数据到达目的后用同样的Key对密码数据进行解密便再现了明码形式的核心数据。
本系统是基于DES加密算法对传输的数据进行加密后再通过网络传输具有一定的安全性。
即使黑客们通过网络监听获取到密文数据但在有限的时间内还是很难对密文进行破解的。
第二章 系统需求分析 1功能需求系统能安全地发送即时信息和文件所有信息的传输都经过加密后再发送到接收方接收方能够对接收到的不同类型的信息进行处理当接收到的是文件内容时保存到本地文件中。
2设计需求能够选择发送的是信息还是文件具有良好的界面和可操作性。
第三章 系统设计 发送端 接收端 开始 密钥处理 信息发送 文件传输 加密 密钥 接收方 密文 网络传输 退出 第四章 调试与运行结果 1发送端和接收端界面 2发送和接收信息调试 开始 密钥处理 解密 发送端 网络传输 密文 即时信息 数据文件 显示信息 保存文件 退出 3发送文件和接收文件调试 4查看接收到的文件 第五章 总结和体会 通过本次的课程学习和系统的编写撑握了DES算法的加密技术。
认识到了网络通信信息安全性的重要性。
现代的密码学除了用于保密通信之外更多运用于政治外交军事经济间来。
随着信息科技的不断发展密码学已经越来越成为社会的主角。
DES在1977年被美国国家标准技术协会认可成为均衡加密算法的标准用于加密非机密的信息.des广泛应用于各个行业的加密领域如银行业.是一种古老的加密算法但至今还有人在用。
可见DES算法的加密技术还是具有一定的安全性。
普遍用于一些非重要信息的加密传输中。
无论是哪种加密算法都会有其的局限性和被破解性所以在对通信信息进行加密来提高安全性外还应加强信息伦理学的工作。
提高网民的素质和遵守网络使用法规才能更好的信息的安全性构建和谐的网络环境 //客户端 pragma commentlibquotws2_32.libquot include ltiostreamgt include ltstdio.hgt include ltio.hgt include ltwinsock2.hgt include ltfcntl.hgt include ltsysstat.hgt include quotDES_fw.hquot //DES 加密和解密头文件 include quotwindows.hquot using namespace std int send_fileSOCKET sockchar name //文件发送函数 FILE fd fopennamequotrbquot if fdNULL printfquot文件打开失败nquot return -1 int name_len strlenname ifname_lenlt8 name_len8 sendsockchar ampname_lensizeofint0 Des_Runname name ENCRYPT //解密 sendsocknamename_len0 char buffer1024 0 int read_count 0 while read_count freadbuffer11024fdgt0 forint i0iltread_counti8 Des_Runbufferi bufferi ENCRYPT //每8个字节加密 sendsockbufferread_count0 shutdownsockSD_SEND printfquot文件发送完成nquot return 0 int main systemquotcolor F0quot void send_msgSOCKET sockchar data //函数声明 int putout int ch char key819809172 Des_SetKeykey WSADATA wsa_data WSAStartup0x0202ampwsa_data SOCKET s_sock s_sock socketAF_INETSOCK_STREAM0 sockaddr_in to_addr //套接字地址簇 to_addr.sin_family AF_INET to_addr.sin_port htons1024 to_addr.sin_addr.S_un.S_addr inet_addrquot127.0.0.1quot //设为本机地址 char file_name256 0 char data1024 memsetdata01024 if connects_socksockaddr ampto_addrsizeofsockaddr lt 0 //链接服务器接收方 printfquot链接接受文件电脑失败nquot return 0 do //菜单选择循环 chputout sends_sockchar ampchsizeofint0 switchch case 1: send_msgs_sockdata break case 2: printfquot请输入要发送的文件名并确保该文件存在于当前目录下nquot scanfquotsquotfile_name send_files_sockfile_name return 0 break case 3: break whilech3 return 0 void send_msgSOCKET sockchar data //即时信息发送函数 int len_data printfquot请输入要发送的信息退出请输入qnquot while1 memsetdata01024 getsdata len_datastrlendata iflen_datalt8 len_data8 ifdata0q Des_Rundata data ENCRYPT sendsockdatalen_data0 systemquotclsquot break Des_Rundata data ENCRYPT int sBytesendsockdatalen_data0 ifSOCKET_ERRORsByte closesocketsock WSACleanup break int putout //界面菜单显示函数 int chose printfquotn -- 基于DES的小型数据安全传输系统 --nnquot printfquot 1.基本信息传输 nquot printfquot 2.文件传输 nquot printfquot 3.退出 nquot while1 printfquot请选择quot scanfquotdquotampchose getchar ifchose1chose2chose3 return chose else printfquot非法输入quot //客户端头文件 include quotmemory.hquot include quotstdio.hquot enum ENCRYPTDECRYPT// ENCRYPT:加密DECRYPT:解密 void Des_Runchar Out8 char In8 bool TypeENCRYPT // 设置密钥 void Des_SetKeyconst char Key8 static void F_funcbool In32 const bool Ki48// f 函数 static void S_funcbool Out32 const bool In48// S 盒代替 // 变换 static void Transformbool Out bool In const char Table int len static void Xorbool InA const bool InB int len// 异或 static void RotateLbool In int len int loop// 循环左移 // 字节组转换成位组 static void ByteToBitbool Out const char In int bits // 位组转换成字节组 static void BitToBytechar Out const bool In int bits //置换IP表 const static char IP_Table64 5850423426362820124 625446383022146645648403224168 57494143352719113 61
上一篇:
STL源码剖析笔记
下一篇:
月入5000,你有什么资格谈生活