今天继续讲java qq项目的详细设计,今天讲一下qq的安全模块,包括客户端安全模块和服务器接收请求并处理后返回结果以及两者协作的过程,以流程图的方式讲述一下
客户端的安全模块流程及伪码如下:
对在飞Q安全界面中,分为“安全概述”,“常见欺诈”,“修改密码”,“修改密保”;
<1> 安全概述
安全概述 概述了你当前飞Q的安全状况
if (设置密保并且密码等级为良好以上)
{
安全状况良好请继续保持良好的习惯
可立即完成设置密码
}
else if (设置密保并且密码等级为中等以下)
{
安全状况存在隐患请定期修改密码
立即完成设置密码
}
else
{
安全状况危险请立刻设置密保问题
立即完成设置密保
}
<2> 常见欺诈
常见的集中欺诈方式:钓鱼网址,视频欺诈,中奖欺诈,冒充好友欺诈;
<3> 修改密码
修改密码之前请确保设置密保;
如果没有设置密保问题,请先设置密保问题,以确保该账户的安全性。如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密码。
if(三个密保问题有空)
{
对不起,密保问题回答不能为空!
没填写的须不完整
}
else
{
向服务器获取对应密保问题的答案
If(回答错误)
{
提示:对不起,密保问题回答不能正确
全部清空,重新输入
}
else
{
修改密码
输入旧密码
if (输入的旧密码正确)
{
if (新密码为空)
{
提示:密码不能为空
}
else if (两次密码输入不一致)
{
提示:两次密码输入不一致
}
else if (两次密码输入一致并且不空)
{
向服务器发送该账号的新密码
}
}
else
{
提示:密码有误,请重新输入
}
}
}
<4> 修改密保
如果没有设置密保问题,设置密保问题。
如果设置了密保问题,请先输入原密保问题,核对用户身份。密保正确才可以修改,如果错误,对不起,不能修改密保。
if(没有设置密保)
{
选择密保问题回答
If(选择的密保问题重复)
{
提示:选择的密保问题重复
重新选择密保问题
}
Else if(修改密保时验证密保问题为空)
{
提示:修改密保时验证密保问题为空
}
Else
{
服务器发送该账号的新密保问题和新密保问题对应的答案
}
}
else
{
已经设置设置密保
向服务器获取对应密保问题的答案
输入密保问题答案(用户)
If(回答错误)
{
提示:对不起,密保问题回答不能正确
全部清空,重新输入
}
else
{
修改密保
选择密保问题回答
If(选择的密保问题重复)
{
提示:选择的密保问题重复
重新选择密保问题
}
Else if(修改密保时验证密保问题为空)
{
提示:修改密保时验证密保问题为空
}
Else
{
服务器发送该账号的新密保问题和新密保问题对应的答案
}
}
}
流程图如下:
服务器的安全模块分为以下几个子模块:
1、设置密保模块
2、判断是否设置密保模块
3、判断密保答案是否正确模块
4、修改密保模块
5、修改密码模块
6、找回密码
服务器端的流程伪码如下:
1、设置密保模块
用户发送修改好友昵称信息包,服务器解析成基本数据,在数据库中找到该用户的的信息,将密保问题和答案写入该用户的数据库中,假如已有密保问题则转到重设密保模块
2、判断是否设置密保模块
用户发送请求后,服务器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,
If(设置了密保)
{
返回密保问题
}
Else if(没有设置密保)
{
发送回去没有设置密保的标识
}
3、判断密保答案是否正确模块
用户发送给服务器密保答案信息,服务器解析出相应的数据,从数据库中查找该用户的信息,得到密保问题和答案,进行判断三个问题是否全部回答对
If(三个密保问题全回答对)
{
向该用户客户端发送验证成功的消息
}
Else(三个问题不全对或全不对)
{
向该用户客户端发送验证失败信息
}
4、修改密保模块
这里说明一下,修改密保的模块是在验证密保答案正确的前提下才能进入的,所以此模块仅仅是覆盖掉该用户的,特此声明,呵呵,声明有点晚了。。
没有复杂逻辑判断,思路如下:
用户发送给服务器新密保信息,服务器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密保问题和答案,然后子线程接收。
5、修改密码模块
声明如7.4所示,不再重复
思路如下:
用户发送给服务器新密码信息,服务器解析出相应的数据,从数据库中查找该用户,在数据库中重写此人的密码,同时将新设置的密码加入内存中用户密码hashmap中,然后子线程接收。
6、找回密码
找回密码其实和重设密保有什么相识的地方,都是先验证信息密保信息是否正确,然后根据正确与否做出相应的处理
用户发送请求后,服务器解析出数据,在数据库中找到该好友,查看该好友是否设置密保,
If(设置了密保)
{
返回密保问题
。。。
判断接受的密保答案是否正确
If(三个问题都回答正确)
{
返回验证成功信息,通知客户端转入重设密码模块
}
Else
{
返回验证失败信息
}
}
Else if(没有设置密保)
{
发送回去没有设置密保的标识,通知该用户由于没有设置密码,通过此方法不能找回密码。
}
服务器的安全模块各子模块流程图如下:
1、设置密保模块
2、判断是否设置密保模块】
3、判断密保答案是否正确模块
4、修改密保模块
5、修改密码模块
6、找回密码
分享到:
相关推荐
本项目是一个Java毕业设计,主要目标是开发一个基于Java的QQ屏幕截图工具。这个工具能够帮助用户方便快捷地捕获并处理屏幕上的图像,模仿QQ的截图功能,提供了一种实用的桌面应用体验。设计与实现的过程涵盖了软件...
【Java项目设计报告——学生信息管理系统】 随着科技的飞速发展,传统的手动管理大量数据的方式已经无法满足现代社会的需求,尤其是在教育领域。学校因为学生数量众多,其学生信息数据库的管理变得异常复杂。为了...
19.2.1 设计项目的界面——文件内容查看器输入界面 19.2.2 “打开”菜单项的处理方法 19.2.3 单击列表选项的处理方法 19.3 知识点扩展——管道的访问 19.3.1 管道的访问——字节方式 19.3.2 管道的访问——字符方式 ...
《山寨版QQ——Java实现详解》 在信息技术领域,编程语言的选择往往决定了软件的特性和应用范围。Java作为一门跨平台、面向对象的编程语言,因其强大的可移植性和丰富的类库,深受开发者喜爱。本篇文章将围绕一个...
这个压缩包文件“安卓Android源码——仿QQ列表通讯录项目.zip”包含了创建一个类似QQ通讯录的Android应用的源代码和相关资源。通过分析这些文件,我们可以深入了解Android应用程序开发的关键知识点。 首先,"源码...
【标题】"安卓Android源码——[安卓开源]仿QQ列表通讯录项目"是一个针对安卓平台的开源项目,旨在模仿QQ应用的通讯录功能。这个项目对于开发者来说,是一个很好的学习资源,它揭示了如何在Android平台上实现一个高效...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
这个压缩包文件“安卓Android源码——仿QQ列表通讯录项目 (2).zip”是一个针对Android平台的开发项目,旨在帮助开发者学习如何构建一个类似QQ的通讯录应用。通过分析和理解这个源码,我们可以深入掌握Android应用...
这个压缩包文件“安卓Android源码——仿QQ邮箱安卓客户端项目.zip”是一个关于安卓应用开发的资源,主要用于学习和理解如何构建一个类似QQ邮箱的安卓客户端应用。通过分析和研究这个项目,我们可以深入掌握Android...
基于对开源即时通讯软件LinuxQQ的深入研究和分析,我们利用Java语言和J2EE规范,精心设计了一款即时通讯工具——JICQ(Java for I seek you)。在工具的构建过程中,我们不仅对其体系结构、构成模块进行了详细的分析...
在本篇文章中,我们将深入探讨一个经典的计算机科学项目——Java飞机大战游戏的设计与实现过程。这款小游戏,源于上世纪80年代的街机游戏,如今被许多学生作为毕业设计的课题来挑战和实践,旨在巩固对Java编程语言的...
SSH是一个流行的Java企业级应用开发框架,它结合了Struts的MVC设计模式、Hibernate的对象关系映射工具以及Spring的依赖注入和事务管理功能,为开发者提供了强大的开发支持。 1. **Struts2**:Struts2是Struts的升级...
- **项目名称**:“Java课程设计——班级管理系统” - **学院**:船山学院 - **班级**:计算机029班 - **作者**:陈强 - **学号**:200294409132004-12-20 #### 二、需求分析 在设计班级管理系统时,首先进行了需求...
总之,这个"安卓Android源码——精仿QQ登录界面源码.zip"项目是一个丰富的学习资源,涵盖了安卓应用开发的多个关键领域,包括UI设计、网络编程、数据管理、安全性和用户体验等。通过研究这个源码,开发者不仅可以学...
在"javaSSH框架——学生学籍管理系统"中,我们可以看到一个典型的SSH框架应用,主要用于实现学生学籍的管理。 一、设计目的 该设计旨在让学生通过实际操作加深对J2EE框架技术的理解,特别是在Struts2、Spring和...
《山寨版QQ——韩顺平循序渐进学Java》是一个基于韩顺平老师的Java教学视频创作的项目,旨在帮助学习者深入理解Java编程语言,尤其是网络编程和GUI设计方面。这个项目分为两大部分:QQ客户端和服务器端,涵盖了基础...