基于DES加密算法的电子邮件的收发软件的开发毕业设计.docx
《基于DES加密算法的电子邮件的收发软件的开发毕业设计.docx》由会员分享,可在线阅读,更多相关《基于DES加密算法的电子邮件的收发软件的开发毕业设计.docx(46页珍藏版)》请在冰豆网上搜索。
基于DES加密算法的电子邮件的收发软件的开发毕业设计
题目基于DES加密算法的电子邮件的收发软件的开发
本科毕业设计任务书
院(系)数学与计算机科学学院专业班级计算机科学与技术(计本1103)学生姓名李亚男
一、毕业设计题目基于DES加密算法的电子邮件的收发软件的开发
二、毕业设计工作自2014年12月_09__日起至2015年6月20日止
三、毕业设计进行地点:
陕西理工学院
四、毕业设计内容要求:
毕业设计应完成内容及相关要求:
分组密码是现代密码学的重要组成部分,它在计算机通讯中对数据提供有效的保护。
DES、AES以及IDEA算法都是分组密码加密技术的典型代表。
本毕业设计要求开发一款电子邮件收发软件。
在该软件中对电子邮件中的文本以及附件采用DES算法发进行加密发送,对收到的加密邮件运用DES的逆算法进行解密。
毕业设计应收集资料及参考文献:
1、搜集关于密码学研究成果,尤其是DES加密算法的最新进展。
2、研究电子邮件协议,收集有关电子邮件客户端软件的开发案例。
开题时间:
2015年3月20日,并于此前提交开题报告
课题完成时间:
2015年5月30日
答辩时间:
2015年6月10前
指导教师李军系(教研室)计算机工程教研室
系(教研室)主任签名批准日期
接受设计任务开始执行日期2014-12-09学生签名李亚男
基于DES加密算法的电子邮件的收发软件的开发
李亚男
(陕西理工学院数学与计算机科学学院计算机科学与技术专业1103班,陕西汉中723003)
指导教师:
李军
[摘要]在发送邮件客户端利用DES加密算法对邮件进行加密,在接收邮件客户端对邮件进行解密,从而保证电子邮件在网络中的安全传输。
系统开发采用B/S设计结构,实现了MVC三层架构,数据库采用MySQL。
按照软件工程的思想依次进行系统的需求分析、系统分析、系统设计和系统调试,最终系统界面简洁美观、使用方便,较好实现了预期的各种功能。
[关键词]DES算法;加密解密;电子邮件;收发软件
TheDevelopmentofEmailReceivingandSendingSoftwareBasedonDESAlgorithm
LiYanan
(Grade11,Class03,SchoolofMathematicsandComputerScienceDept.,ShaanXiUniversityofTechnology,HanZhong723003,ShaanXi)
Tutor:
Lijun
Abstract:
ThesubjectisdesignedanemailclientthatcanencryptmessageusingDESalgorithmwhilesendingEmailanddecryptthemessageusingDESalgorithmwhilereceivingEmail,soastoensureemailsafetransmissioninthenetwork.ThesystemstructureisB/Smode,thedevelopmenttechnologyisbasedMVCthreelayer,thedatabaseuseMySQL.Accordingtothethoughtofsoftwareengineering,inturn,carriedouttherequirementanalysis,systemanalysis,systemdesignanddebugging.Thesysteminterfaceissimpleandbeautiful,easytouse.Ithasbetterachievedthefunctionexpected.
Keywords:
DES algorithm; encryptionanddecryption; Email; Sendandreceivesoftware;
引言
传统的电话通信有两个严重缺点:
第一,电话通信的主叫和被叫双方必须同时在场;第二,一些不是十分紧迫的电话也常常不必要的打断人们正在进行的工作。
而电子邮件的诞生很好的解决了以上两个缺点,电子邮件有以下几个优点:
第一,用户只须登录电子邮件即可很方便的给别人发送信件;第二,电子邮件的传递迅速,用户只须几秒钟的时间即可把信件发送给其他用户;第三,电子邮件的费用低廉,比传统的电话和电报通信都要便宜的多。
一个完整的电子邮件系统由三个主要构件组成,这就是邮件服务器、电子邮件使用的协议以及用户代理。
邮件服务器是电子邮件系统的核心构件,因特网上所有的ISP(因特网服务提供商)都有邮件服务器。
而电子邮件使用的协议是控制电子邮件在网络中正常发送和接收的标准和规则。
目前,发送邮件主要使用的协议为简单邮件传输协议SMTP,接收邮件主要使用的协议为邮局协议POP3。
用户代理UA(UserAgent)就是用户与电子邮件系统的接口,在大多数情况下就是用户PC机上运行的程序,一般由发送邮件客户端和接收邮件客户端构成。
一个优秀的用户代理能够使用户通过一个友好的接口(目前主要是窗口界面)来发送和接收邮件,能够方便用户对电子邮件进行各种操作。
随着网络技术的发展,电子邮件的安全问题变得越来越重要。
在网络上,任何人只要访问这个网络的邮件服务器或者访问电子邮件在该网络中传输所经过的路径,就可以阅读这些邮件,而一些邮件包含了一些重要的信息,如果不幸被截获将带来重大的损失。
因此需要对此采取相应的措施来保证电子邮件在网络中的传输安全。
安全的电子邮件代理能保证用户发送的电子邮件在网络传输中的安全,使邮件中的重要信息不易被窃取。
目前,大多数邮件系统都采取对邮件加密的方法来保证电子邮件传输的安全。
比较流行的邮件加密算法有DES加密算法,RSA加密算法,PeP加密算法。
本文就是开发了基于DES加密的电子邮件收发系统,解决邮件的安全问题。
1需求分析
1.1调查研究
现代网络通信技术飞速发展,电子邮件以其方便、快捷已经成为因特网上最受用户欢迎的一种应用,安全电子邮件代理能够为用户提供一个友好的界面,从而方便用户对电子邮件的管理操作,大大简化了用户在收发电子邮件时所做的工作,其中,提供的对电子邮件的加密功能保证了电子邮件在网络中的安全传输。
而随着网络技术的飞速发展,电子邮件的安全性也受到了质疑。
在网络上,发送一封电子邮件不仅信件向明信片一样是公开的,即使是用户的标志信息如邮件的地址等涉及到传输的信息都暴露无疑,对邮件进行干扰和破坏是一件很容易办到的事情。
因此需要采取相应的措施增强电子邮件的安全性。
基于DES算法的电子邮件收发软件必须要完成以下几个主要的功能:
●能登录常用的几种电子邮箱
●能接收邮件和发送邮件
●对发送的邮件内容进行DES加密,对接收的邮件进行DES解密
●对用户常用的联系人进行管理
1.2性能需求
(1)磁盘容量要求:
本网站属于B/S模式构架,因此存储容量较小,数据库系统也不是很大,系统文件估计占30M的磁盘空间,数据库文件占用空间也不是很大。
(2)安全性要求:
本系统使用拦截器,页面未经用户登录不能进入系统,强制在地址栏进入后无法操作。
(3)用户体验要求:
要求与用户交互反应迅速,界面友好,菜单清楚,用户都能很快熟悉系统。
1.3功能需求
该系统采取B/S模式,主要有三个功能。
收件箱:
(1)收取邮件:
收取当前用户的未读邮件和已读邮件;
(2)删除邮件:
查看邮件后,用户可以删除此邮件;
发件箱:
(1)发送邮件;
(2)记录发送日志;
联系人:
(1)增加联系人;
(2)删除联系人;
1.4数据流图
图1.1顶层数据流图
图1.2邮件发送模块数据流图
图1.3邮件接收模块数据流图
图1.4邮件联系人模块数据流图
1.5数据字典
数据字典就是为了数据流图的每个数据流、文件、加工,以及组成数据流或文件的数据项作出说明。
对数据流图中的数据流、数据存储、加工、数据项的描述如下:
表1.1邮件信息数据字典
数据流名称:
邮件信息
简述:
一个邮件
来源:
用户录入
去向:
邮件服务器
数据流量:
1条/每次
组成:
发件人邮箱地址+主题+内容+发送时间+收件人邮箱地址+附件
表1.2联系人数据字典
数据流名称:
联系人信息
简述:
联系人信息
来源:
用户录入
去向:
联系人信息表
数据流量:
1条/每次
组成:
联系人类型+姓名+邮箱地址+生日+联系电话
表1.3发送邮件日志数据字典
数据流名称:
日志信息
简述:
记录每次发邮件的信息
来源:
系统记录
去向:
邮件日志表
数据流量:
1条/每次
组成:
发件人email+收件人email+主题+发件时间
表1.4已读邮件数据字典
数据流名称:
已读邮件信息
简述:
已经阅读的邮件相关信息内容
来源:
系统记录
去向:
已读邮件表
数据流量:
1条/每次
组成:
邮件id+邮箱地址
2系统设计
2.1设计目标
本系统作为加密的邮件收发软件,应该达到以下的要求:
用户体验:
用户界面友好,即时的人机交互,拥有易操作性;
安全性:
邮件信息在网络传输中的安全性,保证系统的登录安全;
拓展性:
系统以后的功能扩展方便,系统设计结构合理。
2.2开发及运行环境
开发环境:
开发平台为JDK1.6,MyEclipse8.5;
数据库管理系统为MySQL5.0;
WEB服务器为Tomcat6.0;
操作系统为Windows7;
运行环境:
运行平台为JDK1.6;
WEB服务器为Tomcat6.0;
数据库管理系统为MySQL5.0;
操作系统为WindowsXP/Windows7;
分辨率为最佳效果1366*768。
2.3系统结构图
根据需求分析阶段确定的系统要实现的功能,该系统具有以下主要功能模块,系统结构图如图2.1所示。
图2.1系统结构图
2.4数据库设计
2.4.1概念结构设计
根据需求分析,得到系统的概念结构,本系统的概念结构如图2.2-2.12所示。
图2.2发送电子邮件实体E-R图
图2.3接收电子邮件实体E-R图
图2.4联系人实体E-R图
图2.5已读邮件记录实体E-R图
图2.6已发邮件记录实体E-R图
图2.7系统总E-R图
2.4.2逻辑结构设计
数据库逻辑结构设计是把概念模型转换为符合数据库管理系统的数据模型,把该系统的概念模型转换为关系模型可得如下的关系模式:
邮件(发送)(ID,发送邮件地址,邮箱密码,接收邮件地址,发送服务器,接收服务器,主题,内容,发送时间,附件1,附件2)
邮件(接收)(ID,发件邮箱,收件邮箱,主题,发件时间,附件)
发送邮件记录(ID,发件邮箱,收件邮箱,主题,发件时间)
已读邮件记录(ID,邮件ID,收件邮箱)
联系人类型(ID,名称)
联系人类型(ID,所属用户,姓名,生日,电话,邮箱,联系人类型ID)
2.4.3物理结构设计
根据上一步得到的关系模型,按照数据字典中相关数据项的描述,系统数据库的物理结构如表2.1-2.10所示。
(1)tb_type(联系人类型表)
表2.1联系人类型表
列名
数据类型
长度
允许空
功能描述
id
Int
4
主键
name
Varchar
10
类型名称
(2)tb_addresslist(联系人表)
表2.2联系人表
列名
数据类型
长度
允许空
功能描述
id
Int
4
主键
name
Varchar
20
联系人名称
email
Varchar
50
电子邮箱
birthday
Varchar
10
√
出生日期
tel
Varchar
20
√
联系电话
groupId
int
4
类型id
userEmail
varchar
50
所属用户
(3)tb_sendlog(已发邮件记录表)
表2.3已发邮件记录表
列名
数据类型
长度
允许空
功能描述
id
int
4
主键
addresser
varchar
50
发件邮箱
addressee
varchar
50
收件邮箱
subject
varchar
50
主题
诉讼sendTime
Datetime
发件时间
(4)tb_isread(已读邮件记录表)
表2.4已读邮件记录表
列名
数据类型
长度
允许空
功能描述
id
int
4
主键
messageId
varchar
100
邮件id
addressee
varchar
50
收件人
3系统实现
3.1数据库的建立
本系统数据库使用MySQL5.0。
数据库中各个表的实现如下:
(1)已发邮件记录表,表结果如图3.1所示。
图3.1已发邮件记录表
(2)已读邮件记录表,其建表结果如图3.2所示。
图3.2已读邮件记录表
(3)联系人类型表。
实现如图3.3所示。
图3.3联系人类型表
(4)联系人表,实现如图3.4所示。
图3.4联系人表
3.2JDBC数据库连接
JDBC是Java语言访问数据库的一种规范,是一套API。
JDBC(JavaDatabaseConnectivity)API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。
比如建立数据库连接、执行SQL语句进行数据的存取操作。
JDBC规范采用接口和实现分离的思想设计了Java数据库编程的框架。
接口包含在java.sql及javax.sql包中,其中java.sql属于JavaSE,javax.sql属于JavaEE。
这些接口的实现类叫做数据库驱动程序,由数据库的厂商或其它的厂商或个人提供。
下面是系统连接MySql数据库的代码:
publicConnectionconn=null;//声明Connection对象的实例
publicStatementstmt=null;//声明Statement对象的实例
publicResultSetrs=null;//声明ResultSet对象的实例
privatestaticStringpropFileName="/com/connDB.properties";//指定资源文件保存的位置
privatestaticPropertiesprop=newProperties();//创建并实例化Properties对象的实例
privatestaticStringdbClassName="com.mysql.jdbc.Driver";//定义保存数据库驱动的变量
privatestaticStringdbUrl="jdbc:
mysql:
//localhost:
3306/db_email";
privatestaticStringdbUser="root";
privatestaticStringdbPwd="636465";
publicConnDB(){//定义构造方法
try{//捕捉异常
//将Properties文件读取到InputStream对象中
InputStreamin=getClass().getResourceAsStream(propFileName);
prop.load(in);//通过输入流对象加载Properties文件
dbClassName=prop.getProperty("DB_CLASS_NAME");//获取数据库驱动
dbUrl=prop.getProperty("DB_URL",dbUrl);//获取URL
dbUser=prop.getProperty("DB_USER",dbUser);//获取登录用户
dbPwd=prop.getProperty("DB_PWD",dbPwd);//获取密码
}catch(Exceptione){
e.printStackTrace();//输出异常信息
}
/*
*功能:
关闭数据库的连接
*/
publicvoidclose(){
try{//捕捉异常
if(rs!
=null){//当ResultSet对象的实例rs不为空时
rs.close();//关闭ResultSet对象
}
if(stmt!
=null){//当Statement对象的实例stmt不为空时
stmt.close();//关闭Statement对象
}
if(conn!
=null){//当Connection对象的实例conn不为空时
conn.close();//关闭Connection对象
}
}catch(Exceptione){
e.printStackTrace(System.err);//输出异常信息
}
}
3.3主要模块设计
3.3.1登录首页的设计
首页是用户最先使用的功能。
它的设计质量关系到给用户的第一感觉,所以它的设计很重要。
首页展示如图3.5所示。
如何进入首页:
●Web.xml中配置:
index.jsp
●首页登录代码如下:
图3.5首页设计图
POP3服务器:
(如:
)
|
smtp服务器:
(如:
)
|
邮箱名:
(如: test@) |
密 码:
|
|