Linux环境下的密文聊天系统的设计与实现设计与实现
LINUX环境下的密文聊天系统的设计与实现
摘 要
随着计算机的不断普及和互联网技术在全球领域的高速发展。越来越多的人使用到了聊天程序。聊天程序给人们带来通信便利的同时也存在着一些安全隐患,传统的聊天程序以明文方式传送聊天内容,这样就给一些用心不良的人大开方便之门。本系统正是基于以上原因而设计的加密聊天程序。聊天程序采用服务器/客户端模式。在Linux环境下采用socket套接口编程,服务器程序以创建线程池的方式为每一个客户服务。聊天内容由服务器转发。在聊天程序中加入了对称加密算法DES和非对称加密算法RSA。其基本实现是由服务器端生成RSA的公钥和私钥,由客户端生成DES对称密钥,服务器端传送公钥至客户端加密DES密钥之后回传服务器,服务器再用本地的私钥解密获得DES密钥。此后双方的通信由DES密钥加密后传送,这样既能高效的加密明文又能在信道上安全的传送密钥使得密钥间的共享成为现实。
关键词:对称加密算法;非对称加密算法;会话密钥;聊天系统
The Design and implementation of encrypted chat system based on Linux
Abstract
Along with Computer becoming more and more popular and Internet technology developing rapidly, a lot of People began to use the IM(chat program). Chat program brings people more convenience, but at the same time, security problem existed. The traditional chat program sends the message by plain text, which open the door for the bad man. This encrypted chat system is right based on the point. The system is in C/S architecture using socket based on Linux. The server program serves each client in the way of establishing thread and is responsible to transfer message. The DES algorithm and RSA algorithm are used to encrypt in this program. The basic principle is that the server generates RSA public key and private key and client generates DES symmetrical secret key. Firstly, the server sends the public key to client, and then client sends it back after encrypting DES secret key. Secondly, the Server uses local private key to decode to obtain the DES private key. After then, the message is sent after encrypted by DES secret key. So the plain text can be encrypted effectively and sent in channel in security.
Key words: symmetry encrypting program; unsymmetrical encrypting program; conversation key; chat system
目 录
论文总页数:30页
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 本课题研究的意义 1
2 所采用技术的先进性分析 1
2.1 DES算法 1
2.2 RSA算法 2
2.3 线程池 2
3 系统需求分析 3
3.1 聊天程序功能分析 3
3.2 加密算法 3
4 系统总体设计和模块划分 3
4.1 系统总体设计 3
4.2 模块划分 4
4.2.1 DES算法模块 4
4.2.2 RSA算法模块 6
4.2.3 聊天程序模块 7
5 系统实现 9
5.1 DES核心代码 9
5.2 RSA核心代码 12
5.3 WEB注册页面核心代码 15
5.4 服务器端核心代码 18
5.5 客户端核心代码 21
结 论 25
参考文献 25
致 谢 26
声 明 27
附 录 28