基于DES加密算法的电子邮件的收发软件的开发毕业设计Word文件下载.docx
- 文档编号:16831431
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:46
- 大小:742KB
基于DES加密算法的电子邮件的收发软件的开发毕业设计Word文件下载.docx
《基于DES加密算法的电子邮件的收发软件的开发毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于DES加密算法的电子邮件的收发软件的开发毕业设计Word文件下载.docx(46页珍藏版)》请在冰豆网上搜索。
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.3发送邮件日志数据字典
日志信息
记录每次发邮件的信息
系统记录
邮件日志表
发件人email+收件人email+主题+发件时间
表1.4已读邮件数据字典
已读邮件信息
已经阅读的邮件相关信息内容
已读邮件表
邮件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联系人表
20
联系人名称
50
电子邮箱
birthday
√
出生日期
tel
联系电话
groupId
int
类型id
userEmail
varchar
所属用户
(3)tb_sendlog(已发邮件记录表)
表2.3已发邮件记录表
addresser
发件邮箱
addressee
收件邮箱
subject
主题
诉讼sendTime
Datetime
发件时间
(4)tb_isread(已读邮件记录表)
表2.4已读邮件记录表
messageId
100
邮件id
收件人
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(){
if(rs!
=null){//当ResultSet对象的实例rs不为空时
rs.close();
//关闭ResultSet对象
}
if(stmt!
=null){//当Statement对象的实例stmt不为空时
stmt.close();
//关闭Statement对象
if(conn!
=null){//当Connection对象的实例conn不为空时
conn.close();
//关闭Connection对象
e.printStackTrace(System.err);
}
3.3主要模块设计
3.3.1登录首页的设计
首页是用户最先使用的功能。
它的设计质量关系到给用户的第一感觉,所以它的设计很重要。
首页展示如图3.5所示。
如何进入首页:
●Web.xml中配置:
<
welcome-file-list>
<
welcome-file>
index.jsp<
/welcome-file>
/welcome-file-list>
●首页登录代码如下:
图3.5首页设计图
<
tablewidth="
87%"
height="
162"
border="
0"
cellpadding="
cellspacing="
>
tr>
tdwidth="
20%"
35"
align="
center"
POP3服务器:
/td>
80%"
inputname="
host"
type="
text"
id="
size="
30"
value="
"
title="
POP3服务器"
(如:
)<
/tr>
smtp服务器:
host1"
stmp服务器"
tdheight="
邮箱名:
td>
username"
邮箱名"
test@)<
密&
nbsp;
&
码:
pwd"
password"
邮箱密码"
50"
Submit"
submit"
class="
btn_bg"
登录"
&
Submit2"
reset"
重置"
/table>
/div>
●Action中主要代码:
publicvoidlogin(HttpServletRequestrequest,HttpServletResponseresponse){
Stringhost=request.getParameter("
Stringhost1=request.getParameter("
Stringusername=request.getParameter("
Stringpassword=request.getParameter("
Storestore=receiveEmailDAO.connectStore(host,username,password);
//建立与邮件接收服务器的连接
if(store!
=null){
HttpSessionsession=request.getSession();
session.setAttribute("
host);
//保存主机名到session中
host1);
username);
//保存邮箱名到session中
password);
//保存密码到session中
try{
request.getRequestDispatcher("
main.jsp"
).forward(request,response);
store.close();
//关闭与邮件接收服务器的连接
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}else{//将页面重定向到错误提示页
request.setAttribute("
error"
"
您输入的服务器、用户名或是密码错误,登录失败!
try{
error.jsp"
).forward(reques
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DES 加密算法 电子邮件 收发 软件 开发 毕业设计