今天继续讲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、找回密码
分享到:
相关推荐
19.2.1 设计项目的界面——文件内容查看器输入界面 19.2.2 “打开”菜单项的处理方法 19.2.3 单击列表选项的处理方法 19.3 知识点扩展——管道的访问 19.3.1 管道的访问——字节方式 19.3.2 管道的访问——字符方式 ...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
基于对开源即时通讯软件LinuxQQ的深入研究和分析,我们利用Java语言和J2EE规范,精心设计了一款即时通讯工具——JICQ(Java for I seek you)。在工具的构建过程中,我们不仅对其体系结构、构成模块进行了详细的分析...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
单子、工厂、策略、组合、观察者模式 1. 假设现在要设计一个贩卖各类书籍的电子商务网站的购物车系统。对所有的教材类图书 实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣;...该系统包括的模块有:
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
系统详细设计………………………………………9 3.1数据库逻辑设计…………………………………9 3.2各模块功能……………………………………10 3.2.1职工信息管理系统…………………………10 3.2.2职工工资管理系统...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼中的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-...
项目功能模块 新闻模块 游客可以进入 BJTU 新闻进行浏览获取自己想要获得的新闻信息,进入之后默认界面为主界面——“新闻”界面,头部显示新闻的类别包括“头条、娱乐、体育、财经、科技、时尚、历史”等栏目,以...
java开发oa办公系统源码 最新动态通知 【master分支不再维护】:当前项目的master分支不再维护,拉取源码到本地的时候,请选择V2.0分支。 【目前2个分支代码完全一样,最新代码模块的重构还处于开发期间,目前可以...
Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,...
2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...