正如我们在前面曾讨论过的,登录服要实现的功能相当简单,就是帐号验证。为了便于描述,我们暂不引入那些讨论过的优化手段,先以最简单的方式实现,另外也将基本以mangos的代码作为参考来进行描述。
想象一下帐号验证的实现方法,最容易的那就是把用户输入的明文用帐号和密码直接发给登录服,服务器根据帐号从数据库中取出密码,与用户输入的密码相比较。
这个方法存在的安全隐患实在太大,明文的密码传输太容易被截获了。那我们试着在传输之前先加一下密,为了服务器能进行密码比较,我们应该采用一个可逆的加密算法,在服务器端把这个加密后的字串还原为原始的明文密码,然后与数据库密码进行比较。既然是一个可逆的过程,那外挂制作者总有办法知道我们的加密过程,所以,这个方法仍不够安全。
哦,如果我们只是希望密码不可能被还原出来,那还不容易吗,使用一个不可逆的散列算法就行了。用户在登录时发送给服务器的是明文的帐号和经散列后的不可逆密码串,服务器取出密码后也用同样的算法进行散列后再进行比较。比如,我们就用使用最广泛的md5算法吧。噢,不要管那个王小云的什么论文,如果我真有那么好的运气,早中500w了,还用在这考虑该死的服务器设计吗?
似乎是一个很完美的方案,外挂制作者再也偷不到我们的密码了。慢着,外挂偷密码的目的是什么?是为了能用我们的帐号进游戏!如果我们总是用一种固定的算法来对密码做散列,那外挂只需要记住这个散列后的字串就行了,用这个做密码就可以成功登录。
嗯,这个问题好解决,我们不要用固定的算法进行散列就是了。只是,问题在于服务器与客户端采用的散列算法得出的字串必须是相同的,或者是可验证其是否匹配的。很幸运的是,伟大的数学字们早就为我们准备好了很多优秀的这类算法,而且经理论和实践都证明他们也确实是足够安全的。
这其中之一是一个叫做SRP的算法,全称叫做Secure Remote Password,即安全远程密码。wow使用的是第6版,也就是SRP6算法。有关其中的数学证明,如果有人能向我解释清楚,并能让我真正弄明白的话,我将非常感激。不过其代码实现步骤倒是并不复杂,mangos中的代码也还算清晰,我们也不再赘述。
登录服除了帐号验证外还得提供另一项功能,就是在玩家的帐号验证成功后返回给他一个服务器列表让他去选择。这个列表的状态要定时刷新,可能有新的游戏世界开放了,也可能有些游戏世界非常不幸地停止运转了,这些状态的变化都要尽可能及时地让玩家知道。不管发生了什么事,用户都有权利知道,特别是对于付过费的用户来说,我们不该藏着掖着,不是吗?
这个游戏世界列表的功能将由大区服来提供,具体的结构我们在之前也描述过,这里暂不做讨论。登录服将从大区服上获取到的游戏世界列表发给已验证通过的客户端即可。好了,登录服要实现的功能就这些,很简单,是吧。
确实是太简单了,不过简单的结构正好更适合我们来看一看游戏服务器内部的模块结构,以及一些服务器共有组件的实现方法。这就留作下一篇吧。
分享到:
相关推荐
4.5功能需求 - 17 - 4.6性能需求 - 17 - 4.7运行需求 - 18 - 第5章 系统详细设计 - 19 - 5.1系统功能结构图 - 19 - 5.2系统功能设计 - 19 - 5.3系统E-R图 - 21 - 5.4数据库表设计 - 21 - 5.5功能模块设计 - 23 - ...
网上服装商城-网上服装商城的设计与实现代码-java-springboot-基于springboot的网上服装商城项目-代码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素
传统服饰文化系统-传统服饰文化系统的设计与实现-代码-java-基于...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信息管理 22 第6章 系
服装销售平台-服装销售平台的设计与实现代码-java-springboot-基于springboot服装销售平台项目-代码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材
服装定制系统-服装定制系统的设计与实现代码-java-ssm-基于ssm的服装...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信息管理 22 第
该系统不仅满足了用户在线浏览、选择服装款式、定制个性化设计的需求,还提供了便捷的在线支付、订单追踪以及售后服务等功能。通过SSM框架的整合运用,系统实现了高效的业务逻辑处理与数据交互,保证了系统的稳定性...
4.5功能需求 - 17 - 4.6性能需求 - 17 - 4.7运行需求 - 18 - 第5章 系统详细设计 - 19 - 5.1系统功能结构图 - 19 - 5.2系统功能设计 - 19 - 5.3系统E-R图 - 21 - 5.4数据库表设计 - 21 - 5.5功能模块设计 - 23 - ...
服装生产管理系统-服装生产管理系统的设计与实现代码-java-springboot-基于springboot的服装生产管理项目-代码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.
网上服装商城的设计与实现代码-java-springboot-基于springboot的网上服装商城项目-代码-源码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21
服饰文化体验系统-服饰文化体验系统的设计与实现-java-ssm-基于ssm的...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信息管理 22 第6
服装销售平台的设计与实现代码-java-springboot-基于springboot服装销售平台项目-代码-源码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5
服装定制系统的设计与实现代码-java-ssm-基于ssm的服装定制...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信息管理 22 第6章 系统的测
传统服饰文化平台体验系统-传统服饰文化平台体验系统的设计与实现-代码-java-基于ssm...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信
服装生产管理系统的设计与实现代码-java-springboot-基于springboot的服装生产管理项目-代码-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 2
目 录 1 前言 1 2 系统的需求分析 2 2.1 需求分析 2 2.1.1 基本功能需求 2 2.1.2 系统用例分析 2 2.2 总体设计方案 5 2.2.1 系统模块关系与划分 5 3 系统的概要设计 6 3.1 通讯录需求分析 6 3.1.1 新建、编辑联系人 ...
本论文首先对基于WEB的服装管理系统进行了需求分析,从系统开发环境、系统目标、设计流程、功能设计等几个方面进行系统的总体设计,使用Java语言设计了基于WEB的服装管理系统,主要完成了服装管理,库存管理,客户...
java-springboot-基于springboot的网上服装商城项目-代码-源码-项目-...4.2系统功能设计 9 4.3数据库设计 9 第5章 系统的实现 20 5.1用户信息管理 20 5.2 图片素材管理 20 5.3视频素材管理 21 5.1公告信息管理 22 第6
然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,服装信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的网上服装商城。...
该项目在功能设计上,充分考虑了服装生产过程中的各个环节,包括生产计划制定、物料管理、订单跟踪、生产进度监控等核心功能。通过Spring Boot框架的灵活性和扩展性,项目实现了数据的快速处理、信息的实时更新以及...
系统设计部分详细描述了系统的整体架构、数据库设计以及各个功能模块的实现细节。技术实现部分则重点介绍了Spring Boot框架的使用,以及前后端交互、数据持久化等关键技术的实现过程。 配套的毕设源代码严格按照...