亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種驗(yàn)證方法及系統(tǒng)與流程

文檔序號(hào):12278774閱讀:188來(lái)源:國(guó)知局
一種驗(yàn)證方法及系統(tǒng)與流程

本發(fā)明屬于通信技術(shù)領(lǐng)域,尤其涉及一種驗(yàn)證方法及系統(tǒng)。



背景技術(shù):

目前,對(duì)于具有賬號(hào)登錄的應(yīng)用系統(tǒng),一般都會(huì)是客戶端首先進(jìn)行注冊(cè),注冊(cè)完后使用賬戶名和密碼進(jìn)行登錄驗(yàn)證。對(duì)于一般不是特別重要的系統(tǒng)采用上述方法都可以解決客戶端和服務(wù)器的驗(yàn)證過程。而對(duì)于一些比較重要的系統(tǒng),則僅僅使用賬戶登錄系統(tǒng)不足以保證客戶端的合法性,所以會(huì)在客戶端和服務(wù)器之間增加額外的協(xié)議來(lái)驗(yàn)證一個(gè)客戶端的合法性。

現(xiàn)有技術(shù)中的做法是在客戶端和服務(wù)器之間使用非對(duì)稱加密算法來(lái)驗(yàn)證客戶端的合法性,而目前非對(duì)稱加密算法都是公開的并且開源的,很容易從其代碼特征中確定出對(duì)應(yīng)的加密算法是什么,從而HACK可以從網(wǎng)絡(luò)上找到對(duì)應(yīng)算法的代碼,可以比較容易的冒充虛假客戶端來(lái)登錄服務(wù)器。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明實(shí)施例提供了一種驗(yàn)證方法及系統(tǒng),用于解決現(xiàn)有技術(shù)中在驗(yàn)證客戶端時(shí),不易驗(yàn)證出偽客戶端的技術(shù)問題。

本發(fā)明提供一種驗(yàn)證方法,所述驗(yàn)證方法包括:

服務(wù)器通過第一通信信道接收第一獲取請(qǐng)求,基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù);

通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的;

判斷所述第一驗(yàn)證結(jié)果是否正確,若所述第一驗(yàn)證結(jié)果正確,通過所述第二通信信道發(fā)送第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

上述方案中,所述判斷所述第一驗(yàn)證結(jié)果是否正確,包括:

讀取配置文件中的計(jì)算結(jié)果;

將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果進(jìn)行比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

上述方案中,預(yù)先構(gòu)造驗(yàn)證算法,包括:

構(gòu)造驗(yàn)證算法函數(shù);

在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;

在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;

在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

上述方案中,在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:

調(diào)用API函數(shù)memcpy;

根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

本發(fā)明還提供一種驗(yàn)證方法,所述方法包括:

客戶端通過第一通信信道發(fā)送第一獲取請(qǐng)求,使得服務(wù)器能基于所述第一獲取請(qǐng)求返回第一驗(yàn)證數(shù)據(jù);

利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù),獲取第一驗(yàn)證結(jié)果,并通過第二通信信道發(fā)送所述第一驗(yàn)證結(jié)果,使得所述服務(wù)器能判斷所述第一驗(yàn)證結(jié)果是否正確;

若所述第一驗(yàn)證結(jié)果正確,則通過所述第二通信信道接收第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;其中,所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

上述方案中,在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:

調(diào)用API函數(shù)memcpy;

根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

本發(fā)明還提供一種驗(yàn)證方法,所述方法包括:

客戶端通過第一通信信道服務(wù)器向發(fā)送第一獲取請(qǐng)求;

服務(wù)器基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù);

客戶端根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果,并通過第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果;

服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,若所述第一驗(yàn)證結(jié)果正確,通過所述第二通信信道向所述客戶端發(fā)送第一確認(rèn)信息;

其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

本發(fā)明提供一種服務(wù)器,所述服務(wù)器包括:

第一接收單元,用于通過第一通信信道接收第一獲取請(qǐng)求,及通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的;

第一發(fā)送單元,用于基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù);及通過所述第二通信信道發(fā)送第一確認(rèn)信息;

判斷單元,判斷所述第一驗(yàn)證結(jié)果是否正確;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

本發(fā)明提供一種客戶端,所述客戶端包括:

第二發(fā)送單元,用于通過第一通信信道發(fā)送第一獲取請(qǐng)求,使得服務(wù)器能基于所述第一獲取請(qǐng)求返回第一驗(yàn)證數(shù)據(jù);及通過第二通信信道發(fā)送所述第一驗(yàn)證結(jié)果,使得所述服務(wù)器能判斷所述第一驗(yàn)證結(jié)果是否正確;

計(jì)算單元,用于利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù),獲取第一驗(yàn)證結(jié)果;

第二接收單元,用于通過所述第二通信信道接收第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。

本發(fā)明提供一種驗(yàn)證系統(tǒng),所述系統(tǒng)包括:

客戶端,用于通過第一通信信道服務(wù)器向發(fā)送第一獲取請(qǐng)求;

服務(wù)器,用于基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù);

客戶端,用于根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果,并通過第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果;

服務(wù)器,用于判斷所述第一驗(yàn)證結(jié)果是否正確,若所述第一驗(yàn)證結(jié)果正確,通過所述第二通信信道向所述客戶端發(fā)送第一確認(rèn)信息;

其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

本發(fā)明提供了一種驗(yàn)證方法及系統(tǒng),所述驗(yàn)證方法包括:服務(wù)器通過第一通信信道接收第一獲取請(qǐng)求,基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù);通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的;判斷所述第一驗(yàn)證結(jié)果是否正確,若所述第一驗(yàn)證結(jié)果正確,通過所述第二通信信道發(fā)送第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯;如此,因所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯,提高了所述驗(yàn)證算法的復(fù)雜度,使得HACK不容易從網(wǎng)絡(luò)上找到對(duì)應(yīng)算法的代碼,可以避免更精確地驗(yàn)證客戶端的合法性,并且在驗(yàn)證過程中,利用兩種不同的通信信道來(lái)進(jìn)行數(shù)據(jù)交互,進(jìn)一步提高了驗(yàn)證過程的安全性。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施例提供的驗(yàn)證系統(tǒng)整體結(jié)構(gòu)示意圖;

圖2為本發(fā)明實(shí)施例提供的客戶端與服務(wù)器的數(shù)據(jù)交互示意圖;

圖3為本發(fā)明實(shí)施例提供的驗(yàn)證方法的流程示意圖;

圖4為本發(fā)明實(shí)施例提供的又一驗(yàn)證方法的流程示意圖;

圖5為本發(fā)明實(shí)施例提供的驗(yàn)證服務(wù)器的整體結(jié)構(gòu)示意圖;

圖6為本發(fā)明實(shí)施例提供的客戶端的整體結(jié)構(gòu)示意圖。

具體實(shí)施方式

為了在驗(yàn)證客戶端時(shí),提高驗(yàn)證的精確性,本發(fā)明提供了一種驗(yàn)證方法及系統(tǒng),所述驗(yàn)證方法包括:服務(wù)器通過第一通信信道接收第一獲取請(qǐng)求,基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù);通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的;判斷所述第一驗(yàn)證結(jié)果是否正確,若所述第一驗(yàn)證結(jié)果正確,通過所述第二通信信道發(fā)送第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

下面通過附圖及具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說(shuō)明。

實(shí)施例一

在介紹本發(fā)明的方法實(shí)施例之前,先介紹本發(fā)明實(shí)施例中驗(yàn)證系統(tǒng)架構(gòu),如圖1所示,該系統(tǒng)包括:客戶端101和服務(wù)器102。服務(wù)器102如圖1所示,可與N個(gè)客戶端101實(shí)現(xiàn)通信連接,N為自然數(shù),其中,客戶端101、服務(wù)器102之間的通信方式可以是有線通信,也可以是無(wú)線通信,所述客戶端101具體可以是智能手機(jī),也可以是平板電腦,還可以是智能穿戴設(shè)備等等,本申請(qǐng)對(duì)此不作限定。

如圖2所示,所述客戶端101與所述服務(wù)器102之間的數(shù)據(jù)交互過程如下:

S1,客戶端通過第一通信信道服務(wù)器向發(fā)送第一獲取請(qǐng)求。

本步驟中,在驗(yàn)證客戶端的合法性時(shí),客戶端需要通過第一通信信道向所述服務(wù)器發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端與服務(wù)器之間進(jìn)行通信的協(xié)議等。

S2,服務(wù)器基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。

當(dāng)所述服務(wù)器接收到第一獲取請(qǐng)求后,會(huì)基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

S3,客戶端根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果,并通過第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。

本步驟中,當(dāng)客戶端接收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。其中,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完畢。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

S4,服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第一確認(rèn)信息。

本步驟中,當(dāng)服務(wù)器通過第二通信信道接收到第一驗(yàn)證結(jié)果后,服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第一確認(rèn)信息。

所述服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器還進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述客戶端接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器發(fā)送第二獲取請(qǐng)求,當(dāng)所述服務(wù)器接收到第二獲取請(qǐng)求后,會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)客戶端接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)服務(wù)器通過第二通信信道接收到第二驗(yàn)證結(jié)果后,服務(wù)器判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端是偽造客戶端,服務(wù)器將斷開與該客戶端的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

實(shí)施例二

本實(shí)施例提供一種驗(yàn)證方法,該方法應(yīng)用在服務(wù)器端,參見圖3,所述方法包括:

S301,服務(wù)器通過第一通信信道接收第一獲取請(qǐng)求,基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù)。

本步驟中,在驗(yàn)證客戶端的合法性時(shí),客戶端需要通過第一通信信道向所述服務(wù)器發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端與服務(wù)器之間進(jìn)行通信的協(xié)議等。

服務(wù)器通過第一通信信道接收到第一獲取請(qǐng)求時(shí),基于所述第一獲取請(qǐng)求向客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

當(dāng)客戶端接收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。其中,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

S302,通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的。

本步驟中,當(dāng)客戶端通過第二通信信道發(fā)送第一驗(yàn)證結(jié)果后,所述服務(wù)器會(huì)通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的。

S303,判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道發(fā)送第一確認(rèn)信息。

本步驟中,當(dāng)服務(wù)器通過第二通信信道接收到第一驗(yàn)證結(jié)果后,服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第一確認(rèn)信息。

所述服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器還進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述客戶端接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器發(fā)送第二獲取請(qǐng)求,當(dāng)所述服務(wù)器接收到第二獲取請(qǐng)求后,會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)客戶端接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)服務(wù)器通過第二通信信道接收到第二驗(yàn)證結(jié)果后,服務(wù)器判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端是偽造客戶端,服務(wù)器將斷開與該客戶端的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

實(shí)施例三

本實(shí)施例還提供一種驗(yàn)證方法,應(yīng)用在客戶端,如圖4所示,所述方法包括:

S401,客戶端通過第一通信信道發(fā)送第一獲取請(qǐng)求,使得服務(wù)器能基于所述第一獲取請(qǐng)求返回第一驗(yàn)證數(shù)據(jù)。

本步驟中,在驗(yàn)證客戶端的合法性時(shí),客戶端需要通過第一通信信道向所述服務(wù)器發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端與服務(wù)器之間進(jìn)行通信的協(xié)議等。

當(dāng)所述服務(wù)器接收到第一獲取請(qǐng)求后,會(huì)基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

S402,利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù),獲取第一驗(yàn)證結(jié)果,并通過第二通信信道發(fā)送所述第一驗(yàn)證結(jié)果,使得所述服務(wù)器能判斷所述第一驗(yàn)證結(jié)果是否正確。

本步驟中,當(dāng)客戶端接收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。其中,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

所述服務(wù)器判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

S403,若所述第一驗(yàn)證結(jié)果正確,則通過所述第二通信信道接收第一確認(rèn)信息。

本步驟中,若所述第一驗(yàn)證結(jié)果正確,則通過所述第二通信信道接收第一確認(rèn)信息。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器還可以進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述客戶端接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器發(fā)送第二獲取請(qǐng)求,當(dāng)所述服務(wù)器接收到第二獲取請(qǐng)求后,會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)客戶端接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)服務(wù)器通過第二通信信道接收到第二驗(yàn)證結(jié)果后,服務(wù)器判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端是偽造客戶端,服務(wù)器將斷開與該客戶端的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

實(shí)施例四

相應(yīng)實(shí)施例一,本實(shí)施例提供一種驗(yàn)證系統(tǒng),參見圖1,所述系統(tǒng)包括:客戶端101和服務(wù)器102。

在驗(yàn)證客戶端101的合法性時(shí),客戶端101需要通過第一通信信道向所述服務(wù)器102發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端101與服務(wù)器102之間進(jìn)行通信的協(xié)議等。

當(dāng)所述服務(wù)器102接收到第一獲取請(qǐng)求后,會(huì)基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端101發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端101請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

當(dāng)客戶端101接收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器102之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器102發(fā)送第一驗(yàn)證結(jié)果。其中,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

當(dāng)服務(wù)器102通過第二通信信道接收到第一驗(yàn)證結(jié)果后,判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端101發(fā)送第一確認(rèn)信息。

所述服務(wù)器102判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器102的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器102就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器102還進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述客戶端101接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器102發(fā)送第二獲取請(qǐng)求,當(dāng)所述服務(wù)器102接收到第二獲取請(qǐng)求后,會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端101發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端101請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)客戶端101接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器102之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器102發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)服務(wù)器102通過第二通信信道接收到第二驗(yàn)證結(jié)果后,判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端101是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端101是偽造客戶端,服務(wù)器102將斷開與該客戶端101的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

實(shí)施例五

相應(yīng)于實(shí)施例二,本實(shí)施例還提供一種服務(wù)器,參見圖5,所述服務(wù)器包括:第一接收單元51、第一發(fā)送單元52、判斷單元53;其中,

在驗(yàn)證客戶端的合法性時(shí),客戶端需要通過第一通信信道向所述服務(wù)器發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端與服務(wù)器之間進(jìn)行通信的協(xié)議等。

第一接收單元51通過第一通信信道接收第一獲取請(qǐng)求后,所述第一發(fā)送單元52用于基于所述第一獲取請(qǐng)求向客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,所述第一發(fā)送單元52將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

當(dāng)客戶端接收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。其中,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

當(dāng)所述客戶端發(fā)送第一驗(yàn)證結(jié)果后,所述第一接收單元51還用于通過第二通信信道接收第一驗(yàn)證結(jié)果。那么所述判斷單元53用于判斷所述第一驗(yàn)證結(jié)果是否正確;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

所述判斷單元53判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器還進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述客戶端接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器發(fā)送第二獲取請(qǐng)求,當(dāng)所述第一接收單元51接收到第二獲取請(qǐng)求后,所述第一發(fā)送單元52會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)所述客戶端接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,所述客戶端利用所述第二通信信道向所述服務(wù)器發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)?shù)谝唤邮諉卧?2通過第二通信信道接收到第二驗(yàn)證結(jié)果后,所述判斷單元53判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端是偽造客戶端,服務(wù)器將斷開與該客戶端的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

實(shí)施例六

相應(yīng)于實(shí)施例三,本實(shí)施例還提供一種客戶端,參見圖6,所述客戶端包括:第二發(fā)送單元61、計(jì)算單元62、第二接收單元63;其中,

第二發(fā)送單元61用于通過第一通信信道發(fā)送第一獲取請(qǐng)求,使得服務(wù)器能基于所述第一獲取請(qǐng)求返回第一驗(yàn)證數(shù)據(jù);在驗(yàn)證客戶端的合法性時(shí),第二發(fā)送單元61需要通過第一通信信道向所述服務(wù)器發(fā)送第一獲取請(qǐng)求,以獲取驗(yàn)證數(shù)據(jù);其中,所述第一通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道、或其他可以在客戶端與服務(wù)器之間進(jìn)行通信的協(xié)議等。

當(dāng)所述服務(wù)器接收到第一獲取請(qǐng)求后,會(huì)基于所述第一獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第一驗(yàn)證數(shù)據(jù)。其中,將第一驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第一驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等。

當(dāng)?shù)诙邮諉卧?3接收到第一驗(yàn)證數(shù)據(jù)時(shí),所述計(jì)算單元62用于利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù),獲取第一驗(yàn)證結(jié)果。

具體地,當(dāng)?shù)诙邮諉卧?3收到第一驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出第一驗(yàn)證結(jié)果后,所述第二發(fā)送單元61還用于利用所述第二通信信道向所述服務(wù)器發(fā)送第一驗(yàn)證結(jié)果。其中,所述第二通信信道可以是基于HTTP協(xié)議、或基于TCP協(xié)議、或基于UDT協(xié)議建立的通信信道等,且其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯。

這里,預(yù)先構(gòu)造驗(yàn)證算法,包括:構(gòu)造驗(yàn)證算法函數(shù);所述驗(yàn)證算法函數(shù)一般是以字符串表示;為了提高驗(yàn)證算法的復(fù)雜度,可以在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作。

具體地,在所述驗(yàn)證算法函數(shù)中執(zhí)行邏輯運(yùn)算操作時(shí),邏輯運(yùn)算可以是對(duì)數(shù)據(jù)進(jìn)行加、減、乘、除、邏輯異或等操作,此操作可以是無(wú)序及無(wú)邏輯的,加入的邏輯運(yùn)算條數(shù)可以加入任意多條,條數(shù)越多復(fù)雜度越大。

在所述驗(yàn)證算法函數(shù)中執(zhí)行循環(huán)邏輯運(yùn)算操作時(shí),包括:確定循環(huán)計(jì)數(shù),在所述驗(yàn)證算法函數(shù)數(shù)據(jù)結(jié)構(gòu)中添加相應(yīng)的循環(huán)計(jì)數(shù),以循環(huán)執(zhí)行上述的邏輯運(yùn)算。實(shí)際應(yīng)用中,會(huì)在多處加入循環(huán)計(jì)數(shù),避免HACK輕易分析出該驗(yàn)證算法,因?yàn)檠h(huán)邏輯會(huì)一直在相應(yīng)的邏輯運(yùn)算中執(zhí)行,直到循環(huán)計(jì)數(shù)計(jì)數(shù)完。

為了進(jìn)一步提高驗(yàn)證算法的復(fù)雜度,在所述驗(yàn)證算法函數(shù)中執(zhí)行跳轉(zhuǎn)邏輯運(yùn)算操作;因?yàn)樗鲵?yàn)證算法是由循環(huán)語(yǔ)句和運(yùn)算邏輯組成,那么可通過跳轉(zhuǎn)語(yǔ)句從一個(gè)邏輯運(yùn)算跳轉(zhuǎn)到另一個(gè)邏輯運(yùn)算,然后等計(jì)算完后再跳轉(zhuǎn)回來(lái),那么從整個(gè)驗(yàn)證算法的結(jié)構(gòu)看,會(huì)使得整個(gè)結(jié)構(gòu)從一個(gè)地方跳轉(zhuǎn)到另一個(gè)地方,從而增加代碼調(diào)試和分析的復(fù)雜度。

另外,為了避免通過讀寫訪問跟蹤到算法的代碼邏輯,本實(shí)施例還在所述驗(yàn)證算法函數(shù)中執(zhí)行地址變換邏輯運(yùn)算操作,包括:調(diào)用API函數(shù)memcpy;根據(jù)所述API函數(shù)memcpy執(zhí)行所述驗(yàn)證算法函數(shù)的數(shù)據(jù)在內(nèi)存中的拷貝操作。

實(shí)際應(yīng)用時(shí),在驗(yàn)證算法內(nèi)部使用了很多的內(nèi)存拷貝操作,將一個(gè)數(shù)據(jù)從一塊內(nèi)存拷貝到另一塊內(nèi)存,數(shù)據(jù)所在的內(nèi)存地址每拷貝一次就會(huì)變化一次。這樣對(duì)于HACK調(diào)試跟蹤起來(lái)會(huì)麻煩很多。

當(dāng)所述服務(wù)器接收到第一驗(yàn)證結(jié)果后,判斷所述第一驗(yàn)證結(jié)果是否正確,包括:讀取配置文件中的計(jì)算結(jié)果;將所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果相比較,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果一致,則確定所述第一驗(yàn)證結(jié)果正確;其中,所述計(jì)算結(jié)果是預(yù)先根據(jù)預(yù)設(shè)的校驗(yàn)數(shù)據(jù),通過所述驗(yàn)證算法計(jì)算得出的。

這里,為了減輕服務(wù)器的在線處理壓力,會(huì)預(yù)先設(shè)置一些校驗(yàn)數(shù)據(jù),然后通過該驗(yàn)證算法計(jì)算得到計(jì)算結(jié)果,并將該結(jié)果放置到配置文件中,這樣,在實(shí)時(shí)進(jìn)行數(shù)據(jù)交互時(shí),服務(wù)器就無(wú)需進(jìn)行實(shí)時(shí)計(jì)算,可以直接從配置文件中讀取計(jì)算結(jié)果。

當(dāng)所述服務(wù)器確定第一驗(yàn)證結(jié)果正確時(shí),所述第二接收單元63還用于通過所述第二通信信道接收所述服務(wù)器發(fā)送的第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的。

并且,為了進(jìn)一步提高驗(yàn)證的安全性,在確定所述第一驗(yàn)證結(jié)果正確時(shí),服務(wù)器還可以進(jìn)行第二次驗(yàn)證,具體地:

當(dāng)所述第二接收單元63接收到第一確認(rèn)信息時(shí),會(huì)通過所述第一通信信道向所述服務(wù)器發(fā)送第二獲取請(qǐng)求,當(dāng)所述服務(wù)器接收到第二獲取請(qǐng)求后,會(huì)基于所述第二獲取請(qǐng)求通過所述第一通信信道向所述客戶端發(fā)送第二驗(yàn)證數(shù)據(jù)。其中,將第二驗(yàn)證數(shù)據(jù)攜帶在答復(fù)客戶端請(qǐng)求的應(yīng)答信息中,所述第二驗(yàn)證數(shù)據(jù)可以是字符串、圖標(biāo)等,且第二驗(yàn)證數(shù)據(jù)中包含第一驗(yàn)證結(jié)果。

當(dāng)所述第二接收單元63接收到第二驗(yàn)證數(shù)據(jù)后,創(chuàng)建與所述服務(wù)器之間的第二通信信道,根據(jù)預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第二驗(yàn)證數(shù)據(jù)得出第二驗(yàn)證結(jié)果后,利用所述第二通信信道向所述服務(wù)器發(fā)送第二驗(yàn)證結(jié)果。其中,第二次使用的驗(yàn)證算法的運(yùn)算邏輯應(yīng)該比第一次驗(yàn)證使用的驗(yàn)證算法的運(yùn)算邏輯更復(fù)雜。

當(dāng)服務(wù)器通過第二通信信道接收到第二驗(yàn)證結(jié)果后,服務(wù)器判斷所述第二驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道向所述客戶端發(fā)送第二確認(rèn)信息,說(shuō)明該客戶端是個(gè)合法的客戶端。

當(dāng)然,如果想進(jìn)一步提高驗(yàn)證的安全性,還可以進(jìn)行多次驗(yàn)證,可以以具體情況確定驗(yàn)證次數(shù)。

進(jìn)一步地,若所述第一驗(yàn)證結(jié)果與所述計(jì)算結(jié)果不一致,則確定所述第一驗(yàn)證結(jié)果錯(cuò)誤;則說(shuō)明該客戶端是偽造客戶端,服務(wù)器將斷開與該客戶端的連接,且無(wú)需進(jìn)行后續(xù)驗(yàn)證。

本發(fā)明的一個(gè)或多個(gè)實(shí)施例帶來(lái)的有益效果是:

本發(fā)明提供了一種驗(yàn)證方法及系統(tǒng),所述驗(yàn)證方法包括:服務(wù)器通過第一通信信道接收第一獲取請(qǐng)求,基于所述第一獲取請(qǐng)求發(fā)送第一驗(yàn)證數(shù)據(jù);通過第二通信信道接收第一驗(yàn)證結(jié)果,所述第一驗(yàn)證結(jié)果是利用預(yù)先構(gòu)造的驗(yàn)證算法計(jì)算所述第一驗(yàn)證數(shù)據(jù)得出的;判斷所述第一驗(yàn)證結(jié)果是否正確,若正確,通過所述第二通信信道發(fā)送第一確認(rèn)信息;其中,所述第一通信信道與所述第二通信信道是根據(jù)不同的通信協(xié)議建立的;所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯;如此,因所述驗(yàn)證算法中包含有運(yùn)算、循環(huán)、跳轉(zhuǎn)及地址更換的邏輯,提高了所述驗(yàn)證算法的復(fù)雜度,使得HACK不容易從網(wǎng)絡(luò)上找到對(duì)應(yīng)算法的代碼,可以避免更精確地驗(yàn)證客戶端的合法性,并且在驗(yàn)證過程中,利用兩種不同的通信信道來(lái)進(jìn)行數(shù)據(jù)交互,進(jìn)一步提高了驗(yàn)證過程的安全性。

以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1