• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

              正如我們?cè)谇懊嬖懻撨^(guò)的,登錄服要實(shí)現(xiàn)的功能相當(dāng)簡(jiǎn)單,就是帳號(hào)驗(yàn)證。為了便于描述,我們暫不引入那些討論過(guò)的優(yōu)化手段,先以最簡(jiǎn)單的方式實(shí)現(xiàn),另外也將基本以mangos的代碼作為參考來(lái)進(jìn)行描述。



              想象一下帳號(hào)驗(yàn)證的實(shí)現(xiàn)方法,最容易的那就是把用戶輸入的明文用帳號(hào)和密碼直接發(fā)給登錄服務(wù)器,服務(wù)器根據(jù)帳號(hào)從數(shù)據(jù)庫(kù)中取出密碼,與用戶輸入的密碼相比較。

              這個(gè)方法存在的安全隱患實(shí)在太大,明文的密碼傳輸太容易被截獲了。那我們?cè)囍趥鬏斨跋燃右幌旅埽瑸榱朔?wù)器能進(jìn)行密碼比較,我們應(yīng)該采用一個(gè)可逆的加密算法,在服務(wù)器端把這個(gè)加密后的字串還原為原始的明文密碼,然后與數(shù)據(jù)庫(kù)密碼進(jìn)行比較。既然是一個(gè)可逆的過(guò)程,那外掛制作者總有辦法知道我們的加密過(guò)程,所以,這個(gè)方法仍不夠安全。

              哦,如果我們只是希望密碼不可能被還原出來(lái),那還不容易嗎,使用一個(gè)不可逆的散列算法就行了。用戶在登錄時(shí)發(fā)送給服務(wù)器的是明文的帳號(hào)和經(jīng)散列后的不可逆密碼串,服務(wù)器取出密碼后也用同樣的算法進(jìn)行散列后再進(jìn)行比較。比如,我們就用使用最廣泛的md5算法吧。噢,不要管那個(gè)王小云的什么論文,如果我真有那么好的運(yùn)氣,早中500w了,還用在這考慮該死的服務(wù)器設(shè)計(jì)嗎?

              似乎是一個(gè)很完美的方案,外掛制作者再也偷不到我們的密碼了。慢著,外掛偷密碼的目的是什么?是為了能用我們的帳號(hào)進(jìn)游戲!如果我們總是用一種固定的算法來(lái)對(duì)密碼做散列,那外掛只需要記住這個(gè)散列后的字串就行了,用這個(gè)做密碼就可以成功登錄。

              嗯,這個(gè)問(wèn)題好解決,我們不要用固定的算法進(jìn)行散列就是了。只是,問(wèn)題在于服務(wù)器與客戶端采用的散列算法得出的字串必須是相同的,或者是可驗(yàn)證其是否匹配的。很幸運(yùn)的是,偉大的數(shù)學(xué)字們?cè)缇蜑槲覀儨?zhǔn)備好了很多優(yōu)秀的這類算法,而且經(jīng)理論和實(shí)踐都證明他們也確實(shí)是足夠安全的。

              這其中之一是一個(gè)叫做SRP的算法,全稱叫做Secure Remote Password,即安全遠(yuǎn)程密碼。wow使用的是第6版,也就是SRP6算法。有關(guān)其中的數(shù)學(xué)證明,如果有人能向我解釋清楚,并能讓我真正弄明白的話,我將非常感激。不過(guò)其代碼實(shí)現(xiàn)步驟倒是并不復(fù)雜,mangos中的代碼也還算清晰,我們也不再贅述。

              登錄服除了帳號(hào)驗(yàn)證外還得提供另一項(xiàng)功能,就是在玩家的帳號(hào)驗(yàn)證成功后返回給他一個(gè)服務(wù)器列表讓他去選擇。這個(gè)列表的狀態(tài)要定時(shí)刷新,可能有新的游戲世界開(kāi)放了,也可能有些游戲世界非常不幸地停止運(yùn)轉(zhuǎn)了,這些狀態(tài)的變化都要盡可能及時(shí)地讓玩家知道。不管發(fā)生了什么事,用戶都有權(quán)利知道,特別是對(duì)于付過(guò)費(fèi)的用戶來(lái)說(shuō),我們不該藏著掖著,不是嗎?

              這個(gè)游戲世界列表的功能將由大區(qū)服來(lái)提供,具體的結(jié)構(gòu)我們?cè)谥耙裁枋鲞^(guò),這里暫不做討論。登錄服將從大區(qū)服上獲取到的游戲世界列表發(fā)給已驗(yàn)證通過(guò)的客戶端即可。好了,登錄服要實(shí)現(xiàn)的功能就這些,很簡(jiǎn)單,是吧。

              確實(shí)是太簡(jiǎn)單了,不過(guò)簡(jiǎn)單的結(jié)構(gòu)正好更適合我們來(lái)看一看游戲服務(wù)器內(nèi)部的模塊結(jié)構(gòu),以及一些服務(wù)器共有組件的實(shí)現(xiàn)方法。這就留作下一篇吧。
            国产亚洲美女精品久久久2020| 亚洲国产精品综合久久一线| 色欲久久久天天天综合网精品| 久久人妻少妇嫩草AV蜜桃| 国产精品99久久久久久宅男| yy6080久久| 色综合久久88色综合天天 | 奇米影视7777久久精品人人爽| 久久久青草青青国产亚洲免观| 91精品婷婷国产综合久久| 国产精品久久久久久久久鸭| 国产成人精品久久一区二区三区 | 久久久久这里只有精品| 国产毛片久久久久久国产毛片| 中文字幕亚洲综合久久2| 91久久精品国产91性色也| 99久久99久久精品国产片| 久久精品国产99国产精品| 国内精品久久久久久久久电影网| 国产精自产拍久久久久久蜜| 久久高清一级毛片| 亚洲人成无码久久电影网站| 2021国内久久精品| 亚洲AV日韩AV天堂久久| 久久国产热精品波多野结衣AV| 久久国产免费观看精品| 久久精品国产只有精品66 | 91精品国产91久久综合| 一本大道久久a久久精品综合| 精品熟女少妇aⅴ免费久久| 久久人人超碰精品CAOPOREN| 日韩精品无码久久久久久| 久久妇女高潮几次MBA| 久久久久久综合一区中文字幕| 伊人久久大香线焦综合四虎| 久久99精品国产麻豆蜜芽| 亚洲精品乱码久久久久久不卡| 7777精品久久久大香线蕉| 韩国无遮挡三级久久| 久久综合伊人77777| 亚洲国产精品18久久久久久|