欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)的制作方法

文檔序號(hào):12889865閱讀:187來(lái)源:國(guó)知局
基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)的制作方法與工藝

本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的蓬勃發(fā)展,用戶(hù)越來(lái)越普遍地通過(guò)終端設(shè)備接入互聯(lián)網(wǎng)獲取各種資訊信息,辦理各種業(yè)務(wù)等。為了保證信息的安全性,經(jīng)常需要通過(guò)驗(yàn)證碼的方式對(duì)操作進(jìn)行驗(yàn)證。

現(xiàn)有技術(shù)中,用戶(hù)通過(guò)移動(dòng)終端獲取數(shù)字驗(yàn)證碼,具體操作步驟如下:

1、用戶(hù)填寫(xiě)手機(jī)號(hào)碼之后,點(diǎn)擊獲取驗(yàn)證碼,服務(wù)器生成一個(gè)隨機(jī)的數(shù)字序列作為數(shù)字驗(yàn)證碼,并臨時(shí)記錄下來(lái),同時(shí)將短信內(nèi)容和用戶(hù)的手機(jī)號(hào)碼通過(guò)驗(yàn)證碼短信接口提交到服務(wù)商。

2、服務(wù)商將短信即時(shí)發(fā)送到用戶(hù)的手機(jī),用戶(hù)收到短信后,填寫(xiě)數(shù)字驗(yàn)證碼,并發(fā)送到服務(wù)器,服務(wù)器將用戶(hù)填寫(xiě)的數(shù)字驗(yàn)證碼和服務(wù)器生成的數(shù)字序列進(jìn)行比對(duì),如果一致,則驗(yàn)證成功。

現(xiàn)有技術(shù)中的數(shù)字驗(yàn)證碼的獲取方法存在以下問(wèn)題:

1、服務(wù)器在每次接收到用戶(hù)獲取數(shù)字驗(yàn)證碼的請(qǐng)求時(shí),都需要重新隨機(jī)生成固定位數(shù)的數(shù)字驗(yàn)證碼,增加了工作量。

2、不支持用戶(hù)在規(guī)定時(shí)間內(nèi)多次獲取驗(yàn)證碼,如果驗(yàn)證碼誤刪除,則需要等待時(shí)間過(guò)期才能重新獲取驗(yàn)證碼,比較浪費(fèi)時(shí)間。

3、由于驗(yàn)證碼是隨機(jī)生成的,因此不能保證用戶(hù)獲取的驗(yàn)證碼在規(guī)定時(shí)間內(nèi)的唯一性,從而影響安全性。



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

本發(fā)明提供了一種基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng),以解決現(xiàn)有技術(shù)中存在的問(wèn)題。

本發(fā)明實(shí)施例提供了一種基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng),包括:服務(wù)器、第一終端和第二終端;

所述服務(wù)器包含獲取模塊、生成模塊、排序模塊、存儲(chǔ)模塊、接收模塊和調(diào)用模塊;

所述獲取模塊用于,獲取預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量;

所述生成模塊用于,根據(jù)所述用戶(hù)數(shù)量利用隨機(jī)函數(shù)生成包含第一數(shù)量個(gè)數(shù)字驗(yàn)證碼的第一數(shù)組,所述第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第一順序在所述第一數(shù)組中進(jìn)行排列;

所述排序模塊用于,按照預(yù)設(shè)方式改變所述第一數(shù)量個(gè)數(shù)字驗(yàn)證碼在所述第一數(shù)組中的排列順序,生成第二數(shù)組,所述第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第二順序在所述第二數(shù)組中進(jìn)行排列;

所述存儲(chǔ)模塊用于,將所述第二數(shù)組存儲(chǔ)在redis鏈表中;

所述接收模塊用于,接收第一終端發(fā)送的驗(yàn)證碼獲取請(qǐng)求,所述驗(yàn)證碼獲取請(qǐng)求中包含第二終端id;

所述調(diào)用模塊用于,從所述redis鏈表中調(diào)用所述第二數(shù)組中的第一數(shù)字驗(yàn)證碼發(fā)送給所述第二終端,所述第一數(shù)字驗(yàn)證碼在所述redis鏈表中順序排在最后位置;

所述第一終端用于,向所述服務(wù)器發(fā)送驗(yàn)證碼獲取請(qǐng)求;

所述第二終端用于,將所述第一數(shù)字驗(yàn)證碼發(fā)送給所述第一終端。

進(jìn)一步的,所述服務(wù)器還包括添加模塊;

所述添加模塊用于,將所述第一數(shù)字驗(yàn)證碼添加在所述redis鏈表中的第一位置。

進(jìn)一步的,所述添加模塊具體用于:

利用rpoplpush函數(shù)將第一數(shù)字驗(yàn)證碼添加在所述redis鏈表中的第一位置。

進(jìn)一步的,所述第一順序具體包括:

按照所述數(shù)字驗(yàn)證碼的數(shù)值由小到大的順序。

進(jìn)一步的,所述排序模塊具體用于:

利用shuffle函數(shù)將按照第一順序排列的數(shù)字驗(yàn)證碼處理成按照第二順序排列的數(shù)字驗(yàn)證碼。

進(jìn)一步的,所述調(diào)用模塊具體用于:

利用rpop函數(shù)從所述第二數(shù)組中調(diào)用第一數(shù)字驗(yàn)證碼,并生成發(fā)送信息發(fā)送給所述第二終端。

進(jìn)一步的,所述第一終端還用于:

向所述服務(wù)器發(fā)送登錄信息,以使所述服務(wù)器對(duì)所述登錄信息進(jìn)行驗(yàn)證。

本發(fā)明實(shí)施例提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng),服務(wù)器預(yù)先生成數(shù)字驗(yàn)證碼,且數(shù)字碼長(zhǎng)久有效;用戶(hù)可以獲取多個(gè)數(shù)字驗(yàn)證碼,避免因數(shù)字碼丟失,再次獲取的時(shí)間等待;數(shù)字驗(yàn)證碼根據(jù)預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量生成,數(shù)量足夠多,保證了在規(guī)定時(shí)間內(nèi)不同用戶(hù)獲取數(shù)字碼的唯一性。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施例提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)的示意圖。

圖2為本發(fā)明提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)的具體工作過(guò)程流程圖。

具體實(shí)施方式

為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

本發(fā)明技術(shù)方案中的第一終端包括具有處理和顯示能力的終端設(shè)備,例如,智能電視等;第二終端包括具有處理和顯示能力的移動(dòng)終端設(shè)備,例如,智能手機(jī)等。

下面結(jié)合圖1所示的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)示意圖,對(duì)本發(fā)明實(shí)施例提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)進(jìn)行詳細(xì)說(shuō)明。

如圖1所示,本發(fā)明提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)主要包括:服務(wù)器1、第一終端2和第二終端3;

服務(wù)器1包含獲取模塊11、生成模塊12、排序模塊13、存儲(chǔ)模塊14、接收模塊15和調(diào)用模塊16;

獲取模塊11用于,獲取預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量;

生成模塊12用于,根據(jù)用戶(hù)數(shù)量利用隨機(jī)函數(shù)生成包含第一數(shù)量個(gè)數(shù)字驗(yàn)證碼的第一數(shù)組,第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第一順序在第一數(shù)組中進(jìn)行排列;

排序模塊13用于,按照預(yù)設(shè)方式改變第一數(shù)量個(gè)數(shù)字驗(yàn)證碼在第一數(shù)組中的排列順序,生成第二數(shù)組,第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第二順序在第二數(shù)組中進(jìn)行排列。

其中,第一順序具體包括:按照數(shù)字驗(yàn)證碼的數(shù)值由小到大的順序。

具體的,排序模塊13利用shuffle函數(shù)將按照第一順序排列的數(shù)字驗(yàn)證碼處理成按照第二順序排列的數(shù)字驗(yàn)證碼。

存儲(chǔ)模塊14用于,將第二數(shù)組存儲(chǔ)在redis鏈表中;

接收模塊15用于,接收第一終端發(fā)送的驗(yàn)證碼獲取請(qǐng)求,驗(yàn)證碼獲取請(qǐng)求中包含第二終端id;

調(diào)用模塊16用于,從redis鏈表中調(diào)用第二數(shù)組中的第一數(shù)字驗(yàn)證碼發(fā)送給第二終端,第一數(shù)字驗(yàn)證碼在redis鏈表中順序排在最后位置;

具體的,利用rpop函數(shù)從第二數(shù)組中調(diào)用第一數(shù)字驗(yàn)證碼,并生成發(fā)送信息發(fā)送給第二終端。

第一終端2用于,向服務(wù)器發(fā)送驗(yàn)證碼獲取請(qǐng)求。

另外,第一終端2還用于:向服務(wù)器1發(fā)送登錄信息,以使服務(wù)器1對(duì)登錄信息進(jìn)行驗(yàn)證。

第二終端3用于,將第一數(shù)字驗(yàn)證碼發(fā)送給第一終端。

另外,服務(wù)器1還包括添加模塊17;

添加模塊17用于,將第一數(shù)字驗(yàn)證碼添加在redis鏈表中的第一位置。

具體的,利用rpoplpush函數(shù)將第一數(shù)字驗(yàn)證碼添加在redis鏈表中的第一位置。

圖2為本發(fā)明提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng)的具體工作過(guò)程流程圖。如圖2所示,包括如下步驟:

步驟201,服務(wù)器獲取預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量。

可以在服務(wù)器內(nèi)根據(jù)業(yè)務(wù)量預(yù)先設(shè)置一定時(shí)間內(nèi)的有獲取驗(yàn)證碼需求的用戶(hù)終端的數(shù)量。

例如,可以預(yù)設(shè)在5分鐘內(nèi)用戶(hù)終端的數(shù)量為70000。

步驟202,根據(jù)用戶(hù)數(shù)量利用隨機(jī)函數(shù)生成包含第一數(shù)量個(gè)數(shù)字驗(yàn)證碼的第一數(shù)組。

其中,第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第一順序在第一數(shù)組中進(jìn)行排列。第一順序具體包括按照數(shù)字驗(yàn)證碼的數(shù)值由小到大的順序。第一數(shù)量為服務(wù)器生成的數(shù)字驗(yàn)證碼的數(shù)量,該數(shù)量與預(yù)設(shè)的一定時(shí)間內(nèi)的用戶(hù)數(shù)量相關(guān)。

在一個(gè)具體的實(shí)施例中,根據(jù)預(yù)設(shè)的一定時(shí)間內(nèi)的用戶(hù)數(shù)量,利用超級(jí)文本預(yù)處理語(yǔ)言(hypertextpreprocessor,php)的rang函數(shù)生成100000-999999之間的包含89999條數(shù)字驗(yàn)證碼的數(shù)組,89999條數(shù)字驗(yàn)證碼在數(shù)組中按照由小到大的順序進(jìn)行排列。

步驟203,按照預(yù)設(shè)方式改變第一數(shù)量個(gè)數(shù)字驗(yàn)證碼在第一數(shù)組中的排列順序,生成第二數(shù)組。

其中,第一數(shù)量個(gè)數(shù)字驗(yàn)證碼按照第二順序在第二數(shù)組中進(jìn)行排列。

在一個(gè)具體的實(shí)施例中,利用shuffle函數(shù)將按照數(shù)值由小到大的順序排列的第一數(shù)組中的數(shù)字驗(yàn)證碼的排列次序打亂,得到第二數(shù)組。第一數(shù)組和第二數(shù)組中的數(shù)字驗(yàn)證碼的數(shù)量相同,僅排列次序不同。

步驟204,將第二數(shù)組存儲(chǔ)在redis鏈表中。

將第一數(shù)組中的全部數(shù)字驗(yàn)證碼用shuffle函數(shù)打亂順序之后得到第二數(shù)組,將第二數(shù)組存入redis的鏈表中,之后用戶(hù)每次取數(shù)字驗(yàn)證碼時(shí)從redis中獲取,不用再生成了。由于根據(jù)預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量來(lái)確定數(shù)字驗(yàn)證碼的數(shù)量,則數(shù)字驗(yàn)證碼的數(shù)量足夠大,因此在規(guī)定時(shí)間內(nèi)不同用戶(hù)得到的數(shù)字驗(yàn)證碼不會(huì)重復(fù),隨著一定時(shí)間內(nèi)用戶(hù)數(shù)量的逐漸增加,可以重新利用range函數(shù)生成更大數(shù)量的數(shù)字驗(yàn)證碼,打亂數(shù)字驗(yàn)證碼的排序再存入redis鏈表中,從而始終保證規(guī)定時(shí)間內(nèi)不同用戶(hù)終端得到的數(shù)字碼唯一。

步驟205,接收第一終端發(fā)送的驗(yàn)證碼獲取請(qǐng)求,驗(yàn)證碼獲取請(qǐng)求中包含第二終端id。

其中,第二終端id具體可以是用戶(hù)所使用的移動(dòng)終端的電話號(hào)碼。

第一終端在業(yè)務(wù)操作過(guò)程中,如果需要獲取數(shù)字驗(yàn)證碼,則根據(jù)用戶(hù)輸入的操作指令獲取到第二終端id,將包含有第二終端id的驗(yàn)證碼獲取請(qǐng)求發(fā)送給服務(wù)器,服務(wù)器接收該驗(yàn)證碼獲取請(qǐng)求。

接收第一終端發(fā)送的驗(yàn)證碼獲取請(qǐng)求之前,第一終端向服務(wù)器發(fā)送登錄信息,服務(wù)器對(duì)登錄信息進(jìn)行驗(yàn)證。

服務(wù)器對(duì)登錄信息進(jìn)行驗(yàn)證具體包括:服務(wù)器在注冊(cè)信息數(shù)據(jù)庫(kù)中查詢(xún)是否存在該登錄信息,并核對(duì)登錄信息中的用戶(hù)名和密碼是否匹配,如果驗(yàn)證成功,則服務(wù)器向第一終端發(fā)送登錄成功信息,否則,向第一終端發(fā)送登錄失敗信息。

步驟206,從redis鏈表中調(diào)用第二數(shù)組中的第一數(shù)字驗(yàn)證碼發(fā)送給第二終端。

其中,第一數(shù)字驗(yàn)證碼在redis鏈表中順序排在最后位置。

服務(wù)器從驗(yàn)證碼獲取請(qǐng)求中提取第二終端id,利用rpop函數(shù)從第二數(shù)組中調(diào)用在redis鏈表中順序排在最后的第一數(shù)字驗(yàn)證碼,并生成發(fā)送信息,根據(jù)第二終端id發(fā)送給第二終端。

在一個(gè)具體的實(shí)施例中,服務(wù)器從redis鏈表中調(diào)用第一數(shù)字驗(yàn)證碼后生成短信息,根據(jù)移動(dòng)終端的電話號(hào)碼將含有數(shù)字驗(yàn)證碼的短信息發(fā)送給第二終端。

步驟207,第二終端將第一數(shù)字驗(yàn)證碼發(fā)送給第一終端。

第二終端可以預(yù)先下載控制第一終端的應(yīng)用程序app,后者也可以通過(guò)本領(lǐng)域技術(shù)人員無(wú)需付出創(chuàng)造性勞動(dòng)即能夠想出的其他方式將第一終端和第二終端建立數(shù)據(jù)連接,便于后續(xù)進(jìn)行數(shù)據(jù)通信。

優(yōu)選的,在從redis鏈表中調(diào)用第二數(shù)組中的第一數(shù)字驗(yàn)證碼發(fā)送給第二終端之后,服務(wù)器將第一數(shù)字驗(yàn)證碼添加在redis鏈表中的第一位置。

具體的,服務(wù)器利用rpoplpush函數(shù)將第一數(shù)字驗(yàn)證碼添加在redis鏈表中的第一位置,目的是循環(huán)利用生成的數(shù)字驗(yàn)證碼,避免了服務(wù)器每次根據(jù)驗(yàn)證碼獲取請(qǐng)求重復(fù)生成數(shù)字驗(yàn)證碼。

本發(fā)明實(shí)施例提供的基于redis的數(shù)字驗(yàn)證碼的獲取系統(tǒng),服務(wù)器預(yù)先生成數(shù)字驗(yàn)證碼,且數(shù)字碼長(zhǎng)久有效;用戶(hù)可以獲取多個(gè)數(shù)字驗(yàn)證碼,避免因數(shù)字碼丟失,再次獲取的時(shí)間等待;數(shù)字驗(yàn)證碼根據(jù)預(yù)設(shè)時(shí)間內(nèi)的用戶(hù)數(shù)量生成,數(shù)量足夠多,保證了在規(guī)定時(shí)間內(nèi)不同用戶(hù)獲取數(shù)字碼的唯一性。

專(zhuān)業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件來(lái)實(shí)現(xiàn),在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明實(shí)施例的范圍。具體地,所述運(yùn)算和控制部分都可以通絡(luò)邏輯硬件實(shí)現(xiàn),其可以是使用集成電路工藝制造出來(lái)的邏輯集成電路,本實(shí)施例對(duì)此不作限定。

結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(ram)、內(nèi)存、只讀存儲(chǔ)器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。

以上所述的具體實(shí)施方式,對(duì)本發(fā)明實(shí)施例的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明實(shí)施例的具體實(shí)施方式而已,并不用于限定本發(fā)明實(shí)施例的保護(hù)范圍,凡在本發(fā)明實(shí)施例的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明實(shí)施例的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
定安县| 马关县| 楚雄市| 县级市| 巴彦淖尔市| 克山县| 揭西县| 福州市| 陵川县| 河曲县| 莱阳市| 罗山县| 连江县| 平安县| 广西| 内乡县| 林口县| 达孜县| 花垣县| 庆云县| 土默特左旗| 德昌县| 新乡市| 宝兴县| 伊春市| 长治市| 莱西市| 陆丰市| 天等县| 屏山县| 兴业县| 阜宁县| 阳原县| 稷山县| 嘉祥县| 茌平县| 澄迈县| 吉安县| 安达市| 察隅县| 偃师市|