驗(yàn)證碼的驗(yàn)證方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是涉及一種驗(yàn)證碼的驗(yàn)證方法和系統(tǒng)。
【背景技術(shù)】
[0002]驗(yàn)證碼:是指全自動(dòng)區(qū)分計(jì)算機(jī)和人類的圖靈測(cè)試(Completely AutomatedPublic Turing test to tell Computers and Humans Apart,簡(jiǎn)稱CAPTCHA),俗稱驗(yàn)證碼,是一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序。在CAPTCHA測(cè)試中,作為服務(wù)器的計(jì)算機(jī)會(huì)自動(dòng)生成一個(gè)問(wèn)題由用戶來(lái)解答。這個(gè)問(wèn)題可以由計(jì)算機(jī)生成并評(píng)判,但是必須只有人類才能解答。由于計(jì)算機(jī)無(wú)法解答CAPTCHA的問(wèn)題,所以回答出問(wèn)題的用戶被認(rèn)為是人類。
[0003]驗(yàn)證碼作為一種區(qū)分用戶是計(jì)算機(jī)和人的公共全自動(dòng)程序,它可以有效防止壞人使用自動(dòng)化程序進(jìn)行暴力破解密碼、刷票、論壇灌水等惡意行為,傳統(tǒng)的驗(yàn)證碼的技術(shù)方案,主要有所見即所得式的驗(yàn)證碼和動(dòng)態(tài)驗(yàn)證碼。由于驗(yàn)證碼圖像生成技術(shù)無(wú)論成本和難度都要遠(yuǎn)遠(yuǎn)低于圖像解碼識(shí)別技術(shù),解碼技術(shù)從自動(dòng)化逐漸轉(zhuǎn)變成使用人工打碼,即雇傭人去人工大量輸入驗(yàn)證碼的方式去解碼。
[0004]傳統(tǒng)的驗(yàn)證碼雖然能夠很好的對(duì)付自動(dòng)化解碼,如上所述的驗(yàn)證碼和動(dòng)態(tài)驗(yàn)證碼,雖然能夠降低人工打碼的效率,但并不能徹底遏制碼工的解碼行為,無(wú)法在低破解率、低用戶應(yīng)用門檻的基礎(chǔ)上有效地解決人工打碼的問(wèn)題。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題,提供一種驗(yàn)證碼的驗(yàn)證方法和系統(tǒng),在低破解率、低用戶應(yīng)用門檻的基礎(chǔ)上有效解決人工打碼的問(wèn)題。
[0006]一種驗(yàn)證碼的驗(yàn)證方法,包括如下步驟:
[0007]從用戶信息數(shù)據(jù)庫(kù)中獲取用戶的關(guān)系鏈信息,從所述關(guān)系鏈信息中選取驗(yàn)證信息,并根據(jù)所述驗(yàn)證信息與預(yù)設(shè)的干擾信息生成驗(yàn)證碼;
[0008]將所述驗(yàn)證碼發(fā)送至所述用戶登錄的客戶端;
[0009]獲取所述客戶端返回的應(yīng)答信息,并根據(jù)所述關(guān)系鏈信息對(duì)所述應(yīng)答信息進(jìn)行驗(yàn)證。
[0010]一種驗(yàn)證碼的驗(yàn)證系統(tǒng),包括:
[0011]驗(yàn)證碼生成模塊,用于從用戶信息數(shù)據(jù)庫(kù)中獲取用戶的關(guān)系鏈信息,從所述關(guān)系鏈信息中選取驗(yàn)證信息,并根據(jù)所述驗(yàn)證信息與預(yù)設(shè)的干擾信息生成驗(yàn)證碼;
[0012]驗(yàn)證碼下發(fā)模塊,用于將所述驗(yàn)證碼發(fā)送至所述用戶登錄的客戶端;
[0013]驗(yàn)證碼驗(yàn)證模塊,用于獲取所述客戶端返回的應(yīng)答信息,并根據(jù)所述關(guān)系鏈信息對(duì)所述應(yīng)答信息進(jìn)行驗(yàn)證。
[0014]上述驗(yàn)證碼的驗(yàn)證方法和系統(tǒng),從用戶信息數(shù)據(jù)庫(kù)中獲取用戶的關(guān)系鏈信息并從中選取驗(yàn)證信息,結(jié)合驗(yàn)證信息和干擾信息生成驗(yàn)證碼,下發(fā)至登錄用戶對(duì)應(yīng)的客戶端,根據(jù)客戶端返回的應(yīng)答信息和登錄用戶的關(guān)系鏈信息進(jìn)行驗(yàn)證。通過(guò)以用戶的關(guān)系鏈信息作為驗(yàn)證碼題庫(kù)進(jìn)行驗(yàn)證,只有登錄用戶自己才能夠準(zhǔn)確應(yīng)答,保證了低破解率,能夠在低用戶應(yīng)用門檻的基礎(chǔ)上有效地對(duì)抗人工打碼,并徹底解決了人工打碼問(wèn)題。
【附圖說(shuō)明】
[0015]圖1為一個(gè)實(shí)施例的驗(yàn)證碼的驗(yàn)證方法流程圖;
[0016]圖2為一個(gè)實(shí)施例的驗(yàn)證方法流程圖;
[0017]圖3為一個(gè)實(shí)施例的驗(yàn)證碼的示意圖;
[0018]圖4為一個(gè)實(shí)施例的驗(yàn)證方法實(shí)現(xiàn)的系統(tǒng)架構(gòu)圖;
[0019]圖5為一個(gè)實(shí)施例的驗(yàn)證碼的驗(yàn)證系統(tǒng)結(jié)構(gòu)示意圖;
[0020]圖6為一個(gè)實(shí)施例的終端設(shè)備的部分結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0021]下面結(jié)合附圖對(duì)本發(fā)明的驗(yàn)證碼的驗(yàn)證方法和系統(tǒng)的【具體實(shí)施方式】作詳細(xì)描述。
[0022]本發(fā)明提出驗(yàn)證碼的驗(yàn)證技術(shù),是以用戶的關(guān)系鏈信息作為驗(yàn)證碼題庫(kù)的驗(yàn)證方式,在低破解率、低用戶應(yīng)用門檻的基礎(chǔ)上有效解決了人工打碼問(wèn)題。
[0023]參考圖1所示,圖1為一個(gè)實(shí)施例的驗(yàn)證碼的驗(yàn)證方法流程圖,包括如下步驟:
[0024]步驟S10,從用戶信息數(shù)據(jù)庫(kù)中獲取用戶的關(guān)系鏈信息,從所述關(guān)系鏈信息中選取驗(yàn)證信息,并根據(jù)所述驗(yàn)證信息與預(yù)設(shè)的干擾信息生成驗(yàn)證碼。
[0025]在本步驟中,針對(duì)于驗(yàn)證的用戶,在進(jìn)行驗(yàn)證碼驗(yàn)證時(shí),首先確定驗(yàn)證對(duì)象的用戶,然后從后臺(tái)的用戶信息數(shù)據(jù)庫(kù)中獲取到該用戶的關(guān)系鏈信息,再?gòu)脑撚脩舻年P(guān)系鏈信息中選取用于生成驗(yàn)證碼的驗(yàn)證信息,最后根據(jù)驗(yàn)證信息與預(yù)設(shè)的干擾信息生成對(duì)應(yīng)用戶的驗(yàn)證碼。
[0026]對(duì)于關(guān)系鏈信息,是與該用戶相關(guān)聯(lián)的特定信息,這些特定信息能夠使其區(qū)別于其它用戶,只有用戶自己才能夠知曉。
[0027]所述關(guān)系鏈信息,可以包括用戶的好友信息、應(yīng)用權(quán)限信息、等級(jí)信息等。例如,可以是用戶在即時(shí)通訊軟件中的好友信息,用戶具有的各種應(yīng)用權(quán)限,或用戶等級(jí)等信息等,也可以是用戶在論壇中注冊(cè)的賬戶、賬號(hào)等信息。
[0028]在一個(gè)實(shí)施例中,步驟SlO的過(guò)程可以包括如下:
[0029]響應(yīng)客戶端上登錄用戶的訪問(wèn);從用戶信息數(shù)據(jù)庫(kù)中拉取所述登錄用戶的關(guān)系鏈信息;以所述關(guān)系鏈信息為驗(yàn)證碼題庫(kù)生成驗(yàn)證碼。
[0030]例如,用戶通過(guò)客戶端登錄訪問(wèn)web服務(wù)器時(shí),web服務(wù)器需要對(duì)客戶端的用戶進(jìn)行驗(yàn)證碼驗(yàn)證,此時(shí),可以通過(guò)驗(yàn)證服務(wù)器從用戶信息數(shù)據(jù)庫(kù)中拉取該登錄用戶的關(guān)系鏈信息,以其關(guān)系鏈信息為驗(yàn)證碼題庫(kù)生成驗(yàn)證碼,用于對(duì)該用戶進(jìn)行驗(yàn)證。
[0031]其中,以所述關(guān)系鏈信息為驗(yàn)證碼題庫(kù)生成驗(yàn)證碼的步驟,進(jìn)一步可以包括如下步驟:
[0032]從所述關(guān)系鏈信息中隨機(jī)選取若干項(xiàng)驗(yàn)證信息,根據(jù)預(yù)設(shè)的干擾信息獲取與所述驗(yàn)證信息形式相同的若干項(xiàng)干擾信息,將所述驗(yàn)證信息與干擾信息混合生成多個(gè)相同形式的待選項(xiàng),根據(jù)所述待選項(xiàng)生成驗(yàn)證碼。
[0033]上述驗(yàn)證碼生成方法,具體來(lái)說(shuō),就是通過(guò)拉取部分關(guān)系鏈信息,并摻雜部分形式相同的干擾信息,比如,選取好友備注名作為驗(yàn)證信息并摻雜部分干擾名字,混合在一起得到相同形式的待選項(xiàng),再根據(jù)待選項(xiàng)生成驗(yàn)證碼,該驗(yàn)證碼只有用戶自己才能夠知曉準(zhǔn)確答案。
[0034]步驟S20,將所述驗(yàn)證碼發(fā)送至所述用戶登錄的客戶端。
[0035]在本步驟中,是在客戶端需要對(duì)登錄的用戶進(jìn)行驗(yàn)證時(shí),根據(jù)步驟SlO中生成的驗(yàn)證碼及其應(yīng)答問(wèn)題下發(fā)至對(duì)應(yīng)的客戶端進(jìn)行顯示,在這里,每個(gè)用戶都有自己對(duì)應(yīng)的驗(yàn)證碼,用戶可以通過(guò)任何一個(gè)客戶端進(jìn)行登錄,并能夠接收到專屬的驗(yàn)證碼。
[0036]例如,用戶通過(guò)某客戶端登錄訪問(wèn)web服務(wù)器,web服務(wù)器從驗(yàn)證服務(wù)器中獲取驗(yàn)證碼及其應(yīng)答問(wèn)題,下發(fā)至對(duì)應(yīng)的客戶端進(jìn)行顯示,展示給用戶。
[0037]步驟S30,獲取所述客戶端返回的應(yīng)答信息,并根據(jù)所述關(guān)系鏈信息對(duì)所述應(yīng)答信息進(jìn)行驗(yàn)證。
[0038]在本步驟中,用戶可以根據(jù)客戶端展示的驗(yàn)證碼及其應(yīng)答問(wèn)題作出應(yīng)答,后臺(tái)的驗(yàn)證服務(wù)器根據(jù)該用戶關(guān)系鏈信息對(duì)返回應(yīng)答信息進(jìn)行驗(yàn)證。
[0039]例如,用戶通過(guò)點(diǎn)選方式選擇答案后,客戶端將應(yīng)答信息返回至web服務(wù)器,web服務(wù)器將應(yīng)答信息交給驗(yàn)證服務(wù)器進(jìn)行驗(yàn)證。
[0040]對(duì)于驗(yàn)證的方法,是驗(yàn)證應(yīng)答信息是否與答案完全匹配,具體的,驗(yàn)證方法可以包括如下:
[0041]根據(jù)所述關(guān)系鏈信息對(duì)客戶端返回的應(yīng)答信息進(jìn)行校驗(yàn);判斷所述應(yīng)答信息與所述關(guān)系鏈信息是否匹配;若匹配,則確認(rèn)驗(yàn)證通過(guò),否則確認(rèn)驗(yàn)證不通過(guò),驗(yàn)證通過(guò)后返回確認(rèn)信息至客戶端。
[0042]上述驗(yàn)證方法中,設(shè)置完全匹配時(shí)確認(rèn)驗(yàn)證通過(guò),即返回應(yīng)答信息必須與關(guān)系鏈信息完全對(duì)應(yīng),不能包括多余的錯(cuò)誤信息或者缺少準(zhǔn)確信息,由此,可以提高驗(yàn)證的安全性,避免人工打碼的猜答案的問(wèn)題。
[0043]在一個(gè)實(shí)施例中,參考圖2所示,圖2為一個(gè)實(shí)施例的驗(yàn)證方法流程圖,主要包括如下步驟:
[0044]步驟S301,根據(jù)所述關(guān)系鏈信息對(duì)客戶端返回的應(yīng)答信息進(jìn)行校驗(yàn);
[0045]步驟S302,判斷所述應(yīng)答信息與所述關(guān)系鏈信息是否完全匹配;若匹配,則執(zhí)行步驟S303 ;否則,執(zhí)行步驟S304 ;
[0046]步驟S303,確認(rèn)驗(yàn)證通過(guò);
[0047]步驟S304,判斷當(dāng)前驗(yàn)證次數(shù)是否達(dá)到設(shè)定最大次數(shù);若是,執(zhí)行步驟S305,否則轉(zhuǎn)去步驟S20執(zhí)行下一次驗(yàn)證;
[0048]步驟S305,在設(shè)定時(shí)間內(nèi)停止進(jìn)行驗(yàn)證,即在設(shè)定時(shí)間內(nèi)不允許下發(fā)驗(yàn)證碼至客戶端。
[0049]上述驗(yàn)證方法,主要是考慮到由于驗(yàn)證的用戶關(guān)系鏈信息可能比較少,容易存在多次驗(yàn)證時(shí),可以用于隨機(jī)抽取的信息量不足,使得人工打碼可以根據(jù)多次驗(yàn)證推導(dǎo)答案情況發(fā)生,而通過(guò)上述處理機(jī)制,在用戶關(guān)系鏈信息數(shù)量不足時(shí),也可以有效對(duì)抗人工打碼,
[00