本發(fā)明屬于計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)交互方法及裝置。
背景技術(shù):
隨著手持智能終端飛速發(fā)展,基于手持智能終端開發(fā)的應(yīng)用程序(Application,APP)越來越多。APP與后臺(tái)的數(shù)據(jù)交互過程越來越重要。
目前,很多APP與后臺(tái)的數(shù)據(jù)交互沒有安全保護(hù)措施,要么沒有加密,要么是簡(jiǎn)單的加密,很容易被破解,交互數(shù)據(jù)很容易被截取,因此,傳統(tǒng)的APP與后臺(tái)的數(shù)據(jù)交互過程安全性差。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種數(shù)據(jù)交互方法及裝置,以解決傳統(tǒng)的APP與后臺(tái)的數(shù)據(jù)交互過程安全性差的技術(shù)問題,本申請(qǐng)?zhí)峁┑募夹g(shù)方案如下:
第一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)交互方法,應(yīng)用于客戶端中,包括:
獲取業(yè)務(wù)請(qǐng)求參數(shù)、目標(biāo)驗(yàn)證信息和所述目標(biāo)驗(yàn)證信息的版本信息,所述目標(biāo)驗(yàn)證信息用于對(duì)所述客戶端與服務(wù)端之間的交互數(shù)據(jù)進(jìn)行安全驗(yàn)證;
利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息;
將所述加密信息、所述業(yè)務(wù)請(qǐng)求參數(shù)和所述版本信息發(fā)送給服務(wù)端,以使所述服務(wù)端根據(jù)所述加密信息和所述版本信息驗(yàn)證所述業(yè)務(wù)請(qǐng)求參數(shù)正確后與所述客戶端進(jìn)行數(shù)據(jù)交互。
可選地,所述方法還包括:
獲取用于設(shè)置驗(yàn)證信息狀態(tài)的狀態(tài)設(shè)置指令,所述狀態(tài)設(shè)置指令包括要啟用的驗(yàn)證信息的目標(biāo)版本信息,所述驗(yàn)證信息的狀態(tài)包括正常和關(guān)閉;
根據(jù)所述狀態(tài)設(shè)置指令,設(shè)置所述目標(biāo)版本信息對(duì)應(yīng)的驗(yàn)證信息的狀態(tài)為正常狀態(tài)。
可選地,所述利用預(yù)設(shè)的加密算法對(duì)所述業(yè)務(wù)請(qǐng)求參數(shù)、所述目標(biāo)驗(yàn)證信息和所述版本信息進(jìn)行加密運(yùn)算,得到加密信息,包括:
利用消息摘要算法第五版對(duì)所述業(yè)務(wù)請(qǐng)求參數(shù)、所述目標(biāo)驗(yàn)證信息和所述版本信息進(jìn)行加密,得到所述加密信息。
可選地,利用超文本傳輸協(xié)議向所述服務(wù)端發(fā)送所述加密信息、所述業(yè)務(wù)請(qǐng)求參數(shù)和所述版本信息。
第二方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)交互方法,應(yīng)用于服務(wù)端,包括:
接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息;
根據(jù)所述版本信息從所述服務(wù)端獲取目標(biāo)驗(yàn)證信息;
利用所述客戶端所使用的預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和所述業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到第二加密信息;
比較所述第二加密信息與所述第一加密信息是否相同;
當(dāng)所述第二加密信息與所述第一加密信息相同時(shí),根據(jù)所述業(yè)務(wù)請(qǐng)求參數(shù)與所述客戶端進(jìn)行數(shù)據(jù)交互。
可選地,所述業(yè)務(wù)請(qǐng)求參數(shù)包括業(yè)務(wù)參數(shù)、業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的時(shí)間戳和發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí),所述方法在所述比較所述第二加密信息與所述第一加密信息是否相同之前,還包括:
所述服務(wù)端判斷所述業(yè)務(wù)參數(shù)的完整性;
當(dāng)所述業(yè)務(wù)參數(shù)完整時(shí),判斷所述時(shí)間戳是否在有效時(shí)間范圍內(nèi);
當(dāng)確定所述時(shí)間戳在有效時(shí)間范圍內(nèi)時(shí),根據(jù)所述設(shè)備唯一標(biāo)識(shí)判斷發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備是否一致;
當(dāng)確定發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備一致時(shí),執(zhí)行所述比較所述第二加密信息與所述第一加密信息是否相同的步驟。
第三方面,本申請(qǐng)還提供一種數(shù)據(jù)交互裝置,應(yīng)用于客戶端中,包括:
第一獲取單元,用于獲取業(yè)務(wù)請(qǐng)求參數(shù)、目標(biāo)驗(yàn)證信息和所述目標(biāo)驗(yàn)證信息的版本信息,所述目標(biāo)驗(yàn)證信息用于對(duì)所述客戶端與服務(wù)端之間的交互數(shù)據(jù)進(jìn)行安全驗(yàn)證;
加密單元,用于利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息;
發(fā)送單元,用于將所述加密信息、所述業(yè)務(wù)請(qǐng)求參數(shù)和所述版本信息發(fā)送給服務(wù)端,以使所述服務(wù)端根據(jù)所述加密信息和所述版本信息驗(yàn)證所述業(yè)務(wù)請(qǐng)求參數(shù)正確后與所述客戶端進(jìn)行數(shù)據(jù)交互。
可選地,所述裝置還包括:
第二獲取單元,用于獲取用于設(shè)置驗(yàn)證信息狀態(tài)的狀態(tài)設(shè)置指令,所述狀態(tài)設(shè)置指令包括要啟用的驗(yàn)證信息的目標(biāo)版本信息,所述驗(yàn)證信息的狀態(tài)包括正常和關(guān)閉;
狀態(tài)設(shè)置單元,用于根據(jù)所述狀態(tài)設(shè)置指令,設(shè)置所述目標(biāo)版本信息對(duì)應(yīng)的驗(yàn)證信息的狀態(tài)為正常狀態(tài)。
第四方面,本申請(qǐng)還提供了一種數(shù)據(jù)交互裝置,應(yīng)用于服務(wù)端,包括:
接收單元,用于接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息;
第一獲取單元,用于根據(jù)所述版本信息從所述服務(wù)端獲取目標(biāo)驗(yàn)證信息;
加密單元,用于利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和所述業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到第二加密信息;
比較單元,用于比較所述第二加密信息與所述第一加密信息是否相同;
業(yè)務(wù)處理單元,用于當(dāng)所述第二加密信息與所述第一加密信息相同時(shí),根據(jù)所述業(yè)務(wù)請(qǐng)求參數(shù)與所述客戶端進(jìn)行數(shù)據(jù)交互。
可選地,所述業(yè)務(wù)請(qǐng)求參數(shù)包括業(yè)務(wù)參數(shù)、業(yè)務(wù)請(qǐng)求對(duì)應(yīng)的時(shí)間戳和發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí),所述裝置還包括:
第一判斷單元,用于判斷所述業(yè)務(wù)參數(shù)的完整性;
第二判斷單元,用于當(dāng)所述業(yè)務(wù)參數(shù)完整時(shí),判斷所述時(shí)間戳是否在有效時(shí)間范圍內(nèi);
第三判斷單元,用于當(dāng)確定所述時(shí)間戳在有效時(shí)間范圍內(nèi)時(shí),根據(jù)所述設(shè)備唯一標(biāo)識(shí)判斷發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備是否一致;當(dāng)確定發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備一致時(shí),控制所述業(yè)務(wù)處理單元執(zhí)行相應(yīng)的動(dòng)作。
本實(shí)施例提供的數(shù)據(jù)交互方法及裝置,根據(jù)不同的應(yīng)用程序、不同的系統(tǒng),預(yù)先生成APP的驗(yàn)證信息,同一APP可以對(duì)應(yīng)多個(gè)驗(yàn)證信息,但同一時(shí)刻只有一個(gè)驗(yàn)證信息有效。當(dāng)APP與服務(wù)端進(jìn)行數(shù)據(jù)交互時(shí),客戶端獲取目標(biāo)驗(yàn)證信息及該目標(biāo)驗(yàn)證信息對(duì)應(yīng)的版本信息;然后,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密得到加密信息;再將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息發(fā)送給服務(wù)端;服務(wù)端根據(jù)加密信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)驗(yàn)證客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,當(dāng)確定該業(yè)務(wù)請(qǐng)求參數(shù)準(zhǔn)確后,利用所述業(yè)務(wù)請(qǐng)求參數(shù)與客戶端進(jìn)行數(shù)據(jù)交互。從上述過程可知,服務(wù)端接收到APP發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)后,需要通過與APP端一致的驗(yàn)證信息進(jìn)行驗(yàn)證,驗(yàn)證正確后,才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互方法的流程圖;
圖2示出了本申請(qǐng)實(shí)施例另一種數(shù)據(jù)交互方法的流程圖;
圖3示出了本申請(qǐng)實(shí)施例又一種數(shù)據(jù)交互方法的流程圖;
圖4示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互裝置的框圖;
圖5示出了本申請(qǐng)實(shí)施例另一種數(shù)據(jù)交互裝置的框圖;
圖6示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互裝置的框圖;
圖7示出了本申請(qǐng)實(shí)施例又一種數(shù)據(jù)交互裝置的框圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
請(qǐng)參見圖1,示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互方法的流程圖,該方法應(yīng)用于客戶端中(例如,手持智能終端上安裝的APP)。如圖1所示,該方法可以包括以下步驟:
S110,獲取業(yè)務(wù)請(qǐng)求參數(shù)、目標(biāo)驗(yàn)證信息和該目標(biāo)驗(yàn)證信息的版本信息。
客戶端的配置文件中包含驗(yàn)證信息和版本信息。當(dāng)客戶端檢測(cè)到用戶的操作后,產(chǎn)生業(yè)務(wù)請(qǐng)求參數(shù);同時(shí),從客戶端的配置文件中獲取目標(biāo)驗(yàn)證信息及該目標(biāo)驗(yàn)證信息對(duì)應(yīng)的版本信息。所述目標(biāo)驗(yàn)證信息用于對(duì)所述客戶端與服務(wù)端之間的交互數(shù)據(jù)進(jìn)行安全驗(yàn)證。
其中,客戶端中用于管理驗(yàn)證信息的系統(tǒng)(或,稱為后臺(tái))根據(jù)不同的項(xiàng)目、不同的系統(tǒng)生成驗(yàn)證信息和該驗(yàn)證信息對(duì)應(yīng)的版本信息;驗(yàn)證信息可以是包含特殊字符、數(shù)字、英文字符的固定字符串。一個(gè)客戶端可以對(duì)應(yīng)多個(gè)驗(yàn)證信息,但同一時(shí)刻只有一個(gè)驗(yàn)證信息有效。每個(gè)驗(yàn)證信息對(duì)應(yīng)一個(gè)版本信息,不同的驗(yàn)證信息的版本信息可以按順序排列,例如,某個(gè)驗(yàn)證信息的版本信息可以是1.0.0,下一個(gè)驗(yàn)證信息的版本信息為1.0.1。
驗(yàn)證信息和該驗(yàn)證信息的版本信息被寫入客戶端的配置文件中,即客戶端在發(fā)行時(shí)驗(yàn)證信息已被寫死在發(fā)行的軟件中。
客戶端中用于管理驗(yàn)證信息的系統(tǒng)可以設(shè)置驗(yàn)證信息的狀態(tài),所述狀態(tài)包括正常和關(guān)閉,例如,當(dāng)某個(gè)APP被破譯或規(guī)則被破解時(shí),可以配置新版本的驗(yàn)證信息以升級(jí)APP。同時(shí),停用舊版本的驗(yàn)證信息,這樣,當(dāng)利用舊版本的驗(yàn)證信息與服務(wù)端進(jìn)行交互時(shí),APP與服務(wù)端之間的交互不會(huì)成功。
S120,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息。
預(yù)設(shè)加密公式規(guī)定了需要根據(jù)加密算法進(jìn)行加密處理的各個(gè)信息的順序及預(yù)處理過程。例如,預(yù)處理過程可以是去掉字符串中的首位或末尾字符等處理過程。
客戶端和服務(wù)端協(xié)商確定預(yù)設(shè)加密公式,并將預(yù)設(shè)加密公式寫入客戶端的代碼中,同時(shí),也將預(yù)設(shè)加密公式存儲(chǔ)到服務(wù)器中。
例如,預(yù)設(shè)加密算法可以是消息摘要第五版(Message-Digest algorithm 5,MD5),或者,其它加密算法??蛻舳死肕D5算法,對(duì)目標(biāo)驗(yàn)證信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息。
在本申請(qǐng)一種可能的實(shí)現(xiàn)方式中,業(yè)務(wù)請(qǐng)求參數(shù)包括客戶端與服務(wù)器之間進(jìn)行業(yè)務(wù)交互時(shí)所需的所有參數(shù);
在本申請(qǐng)另一種可能的實(shí)現(xiàn)方式中,業(yè)務(wù)請(qǐng)求參數(shù)除包括業(yè)務(wù)交互所需的所有參數(shù)外,還包括該業(yè)務(wù)請(qǐng)求的時(shí)間戳;如果用戶在客戶端進(jìn)行登錄操作后,該用戶登錄時(shí)的設(shè)備唯一標(biāo)識(shí),例如,智能手機(jī)的國(guó)際移動(dòng)設(shè)備身份碼(International Mobile Equipment Identity,IMEI)也包含在業(yè)務(wù)請(qǐng)求參數(shù)中。以便服務(wù)端對(duì)客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行驗(yàn)證。
S130,將所述加密信息、所述業(yè)務(wù)請(qǐng)求參數(shù)和所述版本信息發(fā)送給服務(wù)端,以使所述服務(wù)端根據(jù)所述版本信息、加密信息驗(yàn)證所述業(yè)務(wù)請(qǐng)求參數(shù)正確后與所述客戶端進(jìn)行數(shù)據(jù)交互。
客戶端將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和驗(yàn)證信息的版本信息通過超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)發(fā)送給服務(wù)端,且參數(shù)通過POST方式傳輸。
然后,由服務(wù)端利用加密信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)驗(yàn)證客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,如果準(zhǔn)確,則進(jìn)行業(yè)務(wù)邏輯處理,即與客戶端之間進(jìn)行業(yè)務(wù)數(shù)據(jù)交互。
本實(shí)施例提供的數(shù)據(jù)交互方法,根據(jù)不同的APP、不同的系統(tǒng),預(yù)先生成APP的驗(yàn)證信息。當(dāng)APP與服務(wù)端進(jìn)行數(shù)據(jù)交互時(shí),客戶端獲取目標(biāo)驗(yàn)證信息及該目標(biāo)驗(yàn)證信息對(duì)應(yīng)的版本信息;然后,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到加密信息;再將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息發(fā)送給服務(wù)端;服務(wù)端根據(jù)加密信息、版本信息驗(yàn)證業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,當(dāng)驗(yàn)證準(zhǔn)確后,才利用所述業(yè)務(wù)請(qǐng)求參數(shù)與客戶端進(jìn)行數(shù)據(jù)交互。從上述過程可知,服務(wù)端接收到APP發(fā)送的數(shù)據(jù)后,需要通過與APP端一致的驗(yàn)證信息進(jìn)行驗(yàn)證,驗(yàn)證正確后,才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
請(qǐng)參見圖2,示出了本申請(qǐng)實(shí)施例另一種數(shù)據(jù)交互方法的流程圖,該方法應(yīng)用于服務(wù)端,如圖2所示,該方法可以包括以下步驟:
S210,服務(wù)端接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息。
服務(wù)端通過HTTP連接接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息。HTTP連接會(huì)對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,因此能夠保證數(shù)據(jù)的安全性。
S220,根據(jù)所述版本信息從所述服務(wù)端獲取目標(biāo)驗(yàn)證信息。
服務(wù)端的數(shù)據(jù)庫內(nèi)存儲(chǔ)有各個(gè)版本的客戶端所對(duì)應(yīng)的驗(yàn)證信息,其中,一個(gè)客戶端對(duì)應(yīng)多個(gè)驗(yàn)證信息;服務(wù)端的數(shù)據(jù)庫內(nèi)會(huì)對(duì)應(yīng)存儲(chǔ)驗(yàn)證信息及驗(yàn)證信息的版本信息,服務(wù)端接收到版本信息后從數(shù)據(jù)庫中查找對(duì)應(yīng)的目標(biāo)驗(yàn)證信息。
S230,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和所述業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到第二加密信息。
服務(wù)器中對(duì)應(yīng)存儲(chǔ)有客戶端所使用的預(yù)設(shè)加密公式,該預(yù)設(shè)加密公式規(guī)定了需要根據(jù)加密算法進(jìn)行加密處理的各個(gè)信息的順序及預(yù)處理過程。例如,預(yù)處理過程可以是去掉字符串中的首位或末尾字符等處理過程。
預(yù)設(shè)加密算法是指客戶端和服務(wù)端約定好的加密算法,例如,MD5。
服務(wù)端利用客戶端所使用的加密算法對(duì)版本信息、業(yè)務(wù)請(qǐng)求參數(shù)和查找到的版本信息進(jìn)行加密運(yùn)算,得到第二加密信息。
S240,比較第二加密信息與第一加密信息是否相同;如果相同,則執(zhí)行S250;如果不相同,則執(zhí)行S260。
服務(wù)端比較加密得到的第二加密信息與接收到的第一加密信息是否相同,如果相同,則表明客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)正確,符合安全要求;如果不相同,則表明業(yè)務(wù)請(qǐng)求參數(shù)不準(zhǔn)確、不符合安全要求。
S250,根據(jù)所述業(yè)務(wù)請(qǐng)求參數(shù)與所述客戶端進(jìn)行數(shù)據(jù)交互。
在確定業(yè)務(wù)請(qǐng)求參數(shù)滿足安全要求后,才進(jìn)行后續(xù)的業(yè)務(wù)邏輯處理過程。
S260,向客戶端返回錯(cuò)誤信息。
在確定業(yè)務(wù)請(qǐng)求參數(shù)不滿足安全要求后,向客戶端返回錯(cuò)誤信息,以提示客戶端當(dāng)前業(yè)務(wù)不滿足安全要求,無法繼續(xù)處理。
本實(shí)施例提供的數(shù)據(jù)交互方法,客戶端除向服務(wù)端發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)外,還需要發(fā)送驗(yàn)證信息的版本信息和第一加密信息;然后,服務(wù)端根據(jù)版本信息獲取目標(biāo)驗(yàn)證信息,并對(duì)所述版本信息、目標(biāo)驗(yàn)證信息和業(yè)務(wù)請(qǐng)求參數(shù)利用預(yù)設(shè)加密算法進(jìn)行加密,得到第二加密信息;當(dāng)?shù)诙用苄畔⒑偷谝患用苄畔⑾嗤瑫r(shí),才繼續(xù)進(jìn)行業(yè)務(wù)邏輯處理,這樣,相當(dāng)于服務(wù)端對(duì)客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行驗(yàn)證,驗(yàn)證正確后才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
請(qǐng)參見圖3,示出了本申請(qǐng)實(shí)施例又一種數(shù)據(jù)交互方法的流程圖,該方法應(yīng)用于包括客戶端和服務(wù)端的系統(tǒng)中,如圖3所示,該方法可以包括以下步驟:
S310,當(dāng)客戶端檢測(cè)到用戶的業(yè)務(wù)請(qǐng)求操作后,產(chǎn)生業(yè)務(wù)請(qǐng)求參數(shù)。
本實(shí)施例中,業(yè)務(wù)請(qǐng)求參數(shù)包括業(yè)務(wù)所需所有參數(shù)、業(yè)務(wù)請(qǐng)求的時(shí)間戳,以及發(fā)送該業(yè)務(wù)請(qǐng)求參數(shù)的終端對(duì)應(yīng)的設(shè)備唯一標(biāo)識(shí),例如,終端是手機(jī)時(shí),該設(shè)備唯一標(biāo)識(shí)可以是手機(jī)的IMEI。
S320,客戶端獲取目標(biāo)驗(yàn)證信息及目標(biāo)驗(yàn)證信息的版本信息。
S330,客戶端利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到第一加密信息。
S340,客戶端將第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息通過HTTP連接發(fā)送給服務(wù)端。
S350,服務(wù)端判斷業(yè)務(wù)所需的參數(shù)是否完整;如果完整,則執(zhí)行S360,否則,執(zhí)行S3120;
服務(wù)端有相應(yīng)的參數(shù)說明,包括參數(shù)的傳輸方式(例如,get,post)、參數(shù)的屬性(例如,整型、字符型)、參數(shù)是否必填等,服務(wù)端會(huì)根據(jù)參數(shù)說明逐一對(duì)業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果都不為空,表明校驗(yàn)結(jié)果與參數(shù)說明一致,從而證明該業(yè)務(wù)請(qǐng)求參數(shù)完整。
S360,服務(wù)端判斷時(shí)間戳是否在有效時(shí)間范圍內(nèi);如果是,則執(zhí)行S370;否則,執(zhí)行S3120。
業(yè)務(wù)請(qǐng)求參數(shù)中的時(shí)間戳是客戶端生成該業(yè)務(wù)請(qǐng)求時(shí)攜帶的客戶端側(cè)的時(shí)間。考慮到客戶端側(cè)的時(shí)間可能與服務(wù)端的時(shí)間不一致,而且信息傳輸需要一定的時(shí)間,因此,有效時(shí)間范圍可以是該時(shí)間戳的前后預(yù)設(shè)時(shí)間段。
例如,時(shí)間戳是1月1日10:15am,預(yù)設(shè)時(shí)間段是15min,則有效時(shí)間范圍可以是1月1日的10:00~10:30am。
S370,服務(wù)端根據(jù)所述設(shè)備唯一標(biāo)識(shí)判斷發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)的終端是否與登錄設(shè)備一致;如果一致,則執(zhí)行S380;否則,執(zhí)行S3120。
服務(wù)端接收到的業(yè)務(wù)請(qǐng)求參數(shù)中包含發(fā)送該業(yè)務(wù)請(qǐng)求參數(shù)的設(shè)備唯一標(biāo)識(shí),與用戶登錄該客戶端時(shí)保存的設(shè)備唯一標(biāo)識(shí)是否相同,如果兩個(gè)設(shè)備唯一標(biāo)識(shí)相同,則確定發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)的終端設(shè)備與登錄時(shí)的設(shè)備相同,表明該業(yè)務(wù)請(qǐng)求參數(shù)是由登錄設(shè)備發(fā)送的;否則,確定發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)的終端設(shè)備與登錄時(shí)的設(shè)備不相同,表明該業(yè)務(wù)請(qǐng)求參數(shù)是另一個(gè)終端(進(jìn)而表明該客戶端可能被惡意破解)發(fā)送的。
S380,服務(wù)端從本地查找與所述版本信息對(duì)應(yīng)的目標(biāo)驗(yàn)證信息。
服務(wù)端數(shù)據(jù)庫中存儲(chǔ)有驗(yàn)證信息和驗(yàn)證信息的版本信息。
S390,服務(wù)端利用與客戶端一致的預(yù)設(shè)加密公式和預(yù)設(shè)加密算法,對(duì)目標(biāo)驗(yàn)證信息、版本信息和所述業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到第二加密信息。
S3100,服務(wù)端比較第二加密信息與第一加密信息是否相同;如果相同,則執(zhí)行S3110;否則,執(zhí)行S3120。
S3110,服務(wù)端據(jù)業(yè)務(wù)請(qǐng)求參數(shù)處理業(yè)務(wù)邏輯,與客戶端之間進(jìn)行相應(yīng)的數(shù)據(jù)交互。
S3120,服務(wù)端向客戶端返回錯(cuò)誤提示信息。
S3130,客戶端向展示所述錯(cuò)誤提示信息。
本實(shí)施例提供的數(shù)據(jù)交互方法,當(dāng)APP與服務(wù)端進(jìn)行數(shù)據(jù)交互時(shí),客戶端獲取目標(biāo)驗(yàn)證信息及該目標(biāo)驗(yàn)證信息對(duì)應(yīng)的版本信息;然后,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到加密信息;再將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息發(fā)送給服務(wù)端;服務(wù)端根據(jù)加密信息、版本信息驗(yàn)證業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,當(dāng)驗(yàn)證準(zhǔn)確后,才利用所述業(yè)務(wù)請(qǐng)求參數(shù)與客戶端進(jìn)行數(shù)據(jù)交互。從上述過程可知,服務(wù)端接收到APP發(fā)送的數(shù)據(jù)后,需要通過與APP端一致的驗(yàn)證信息進(jìn)行驗(yàn)證,驗(yàn)證正確后,才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
相應(yīng)于上述的數(shù)據(jù)交互方法實(shí)施例,本申請(qǐng)還提供了數(shù)據(jù)交互裝置實(shí)施例。
請(qǐng)參見圖4,示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互裝置的框圖,該裝置應(yīng)用于客戶端中,如圖4所示,該裝置包括:第一獲取單元110、加密單元120和發(fā)送單元130。
第一獲取單元110,用于獲取業(yè)務(wù)請(qǐng)求參數(shù)、目標(biāo)驗(yàn)證信息和該目標(biāo)驗(yàn)證信息的版本信息。
目標(biāo)驗(yàn)證信息用于對(duì)所述客戶端與服務(wù)端之間的交互數(shù)據(jù)進(jìn)行安全驗(yàn)證。后臺(tái)(客戶端中用于管理驗(yàn)證信息的系統(tǒng))根據(jù)不同的項(xiàng)目、不同的系統(tǒng)生成驗(yàn)證信息和該驗(yàn)證信息對(duì)應(yīng)的版本信息;驗(yàn)證信息可以是包含特殊字符、數(shù)字、英文字符的固定字符串。
驗(yàn)證信息和對(duì)應(yīng)的版本信息被寫入客戶端的配置文件中,即客戶端在發(fā)行時(shí)驗(yàn)證信息已被寫死在發(fā)行的軟件中。
加密單元120,用于利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息。
預(yù)設(shè)加密算法是客戶端和服務(wù)端約定好的加密算法,例如,MD5。加密單元120利用MD5算法,對(duì)目標(biāo)驗(yàn)證信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密運(yùn)算,得到加密信息。
發(fā)送單元130,用于將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息發(fā)送給服務(wù)端,以使服務(wù)端根據(jù)加密信息和版本信息驗(yàn)證業(yè)務(wù)請(qǐng)求參數(shù)正確后與所述客戶端進(jìn)行數(shù)據(jù)交互。
客戶端將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和驗(yàn)證信息的版本信息通過超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)發(fā)送給服務(wù)端,且參數(shù)通過POST方式傳輸。
然后,由服務(wù)端利用加密信息、版本信息和業(yè)務(wù)請(qǐng)求參數(shù)驗(yàn)證客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,如果準(zhǔn)確,則進(jìn)行業(yè)務(wù)邏輯處理,即與客戶端之間進(jìn)行業(yè)務(wù)數(shù)據(jù)交互。
本實(shí)施例提供的數(shù)據(jù)交互裝置,根據(jù)不同的應(yīng)用程序(Application,APP)、不同的系統(tǒng),預(yù)先生成APP的驗(yàn)證信息。當(dāng)APP與服務(wù)端進(jìn)行數(shù)據(jù)交互時(shí),客戶端獲取目標(biāo)驗(yàn)證信息及該目標(biāo)驗(yàn)證信息對(duì)應(yīng)的版本信息;然后,利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)目標(biāo)驗(yàn)證信息、版本信息和獲得的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到加密信息;再將加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息發(fā)送給服務(wù)端;服務(wù)端根據(jù)加密信息、版本信息驗(yàn)證業(yè)務(wù)請(qǐng)求參數(shù)是否準(zhǔn)確,當(dāng)驗(yàn)證準(zhǔn)確后,才利用所述業(yè)務(wù)請(qǐng)求參數(shù)與客戶端進(jìn)行數(shù)據(jù)交互。從上述過程可知,服務(wù)端接收到APP發(fā)送的數(shù)據(jù)后,需要通過與APP端一致的驗(yàn)證信息進(jìn)行驗(yàn)證,驗(yàn)證正確后,才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
請(qǐng)參見圖5,示出了本申請(qǐng)實(shí)施例另一種數(shù)據(jù)交互裝置的框圖,該裝置在圖4所示實(shí)施例的基礎(chǔ)上還包括:第二獲取單元210和狀態(tài)設(shè)置單元220。
第二獲取單元210,用于獲取用于設(shè)置驗(yàn)證信息狀態(tài)的狀態(tài)設(shè)置指令;
所述狀態(tài)設(shè)置指令包括要啟用的驗(yàn)證信息的目標(biāo)版本信息,所述驗(yàn)證信息的狀態(tài)包括正常和關(guān)閉。
狀態(tài)設(shè)置單元220,用于根據(jù)所述狀態(tài)設(shè)置指令,設(shè)置所述目標(biāo)版本信息對(duì)應(yīng)的驗(yàn)證信息的狀態(tài)為正常狀態(tài)。
用于管理驗(yàn)證信息的系統(tǒng)可以設(shè)置驗(yàn)證信息的狀態(tài),所述狀態(tài)包括正常和關(guān)閉,例如,當(dāng)某個(gè)APP被破譯或規(guī)則被破解時(shí),可以配置新版本的驗(yàn)證信息以升級(jí)APP。同時(shí),停用舊版本的驗(yàn)證信息,這樣,當(dāng)利用舊版本的驗(yàn)證信息與服務(wù)端進(jìn)行交互時(shí),APP與服務(wù)端之間的交互不會(huì)成功。
本實(shí)施例提供的數(shù)據(jù)交互裝置,可以根據(jù)實(shí)際需求更換當(dāng)前使用的驗(yàn)證信息,當(dāng)停用舊版本的驗(yàn)證信息后,如果再利用舊版本的驗(yàn)證信息與服務(wù)器進(jìn)行數(shù)據(jù)交互,將會(huì)導(dǎo)致APP與服務(wù)端之間的交互失敗,這樣,保證客戶端與服務(wù)端之間的數(shù)據(jù)交互的安全性。
本申請(qǐng)還提供了應(yīng)用于服務(wù)端的數(shù)據(jù)交互裝置實(shí)施例。
請(qǐng)參見圖6,示出了本申請(qǐng)實(shí)施例一種數(shù)據(jù)交互裝置的框圖,該裝置應(yīng)用于服務(wù)端,如圖6所示,該裝置包括接收單元310、第一獲取單元320、加密單元330、比較單元340和業(yè)務(wù)處理單元350。
接收單元310,用于接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息。
服務(wù)端通過HTTP連接接收客戶端發(fā)送的第一加密信息、業(yè)務(wù)請(qǐng)求參數(shù)和版本信息。HTTP連接會(huì)對(duì)傳輸?shù)臄?shù)據(jù)進(jìn)行加密,因此能夠保證數(shù)據(jù)的安全性。
第一獲取單元320,用于根據(jù)所述版本信息從所述服務(wù)端獲取目標(biāo)驗(yàn)證信息。
服務(wù)端的數(shù)據(jù)庫內(nèi)存儲(chǔ)有各個(gè)版本的客戶端所對(duì)應(yīng)的驗(yàn)證信息,其中,一個(gè)客戶端對(duì)應(yīng)多個(gè)驗(yàn)證信息;服務(wù)端的數(shù)據(jù)庫內(nèi)會(huì)對(duì)應(yīng)存儲(chǔ)驗(yàn)證信息及驗(yàn)證信息的版本信息,服務(wù)端接收到版本信息后從數(shù)據(jù)庫中查找對(duì)應(yīng)的目標(biāo)驗(yàn)證信息。
加密單元330,用于利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法對(duì)所述目標(biāo)驗(yàn)證信息、所述版本信息和所述業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行加密,得到第二加密信息。
服務(wù)端利用客戶端所使用的預(yù)設(shè)加密公式和加密算法對(duì)版本信息、業(yè)務(wù)請(qǐng)求參數(shù)和查找到的版本信息進(jìn)行加密運(yùn)算,得到第二加密信息。
比較單元340,用于比較所述第二加密信息與所述第一加密信息是否相同。
服務(wù)端比較加密得到的第二加密信息與接收到的第一加密信息是否相同,如果相同,則表明客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)正確,符合安全要求;如果不相同,則表明業(yè)務(wù)請(qǐng)求參數(shù)不準(zhǔn)確、不符合安全要求。
業(yè)務(wù)處理單元350,用于當(dāng)所述第二加密信息與所述第一加密信息相同時(shí),根據(jù)所述業(yè)務(wù)請(qǐng)求參數(shù)與所述客戶端進(jìn)行數(shù)據(jù)交互。
在確定業(yè)務(wù)請(qǐng)求參數(shù)滿足安全要求后,才進(jìn)行后續(xù)的業(yè)務(wù)邏輯處理過程。
本實(shí)施例提供的數(shù)據(jù)交互裝置,客戶端除向服務(wù)端發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)外,還需要發(fā)送驗(yàn)證信息的版本信息和第一加密信息;然后,服務(wù)端根據(jù)版本信息獲取目標(biāo)驗(yàn)證信息,并對(duì)所述版本信息、目標(biāo)驗(yàn)證信息和業(yè)務(wù)請(qǐng)求參數(shù)利用預(yù)設(shè)加密公式和預(yù)設(shè)加密算法進(jìn)行加密,得到第二加密信息;當(dāng)?shù)诙用苄畔⒑偷谝患用苄畔⑾嗤瑫r(shí),才繼續(xù)進(jìn)行業(yè)務(wù)邏輯處理,這樣,相當(dāng)于服務(wù)端對(duì)客戶端發(fā)送的業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行驗(yàn)證,驗(yàn)證正確后才與APP進(jìn)行業(yè)務(wù)數(shù)據(jù)交互,從而保證APP與服務(wù)端之間交互的安全性。
請(qǐng)參見圖7,示出了本申請(qǐng)實(shí)施例又一種數(shù)據(jù)交互裝置的框圖,該裝置應(yīng)用于服務(wù)端,該裝置在圖6所示實(shí)施例的基礎(chǔ)上還包括:第一判斷單元410、第二判斷單元420和第三判斷單元430;
第一判斷單元410,用于判斷所述業(yè)務(wù)參數(shù)的完整性。
服務(wù)端有相應(yīng)的參數(shù)說明,包括參數(shù)的傳輸方式(例如,get,post)、參數(shù)的屬性(例如,整型、字符型)、參數(shù)是否必填等,服務(wù)端會(huì)根據(jù)參數(shù)說明逐一對(duì)業(yè)務(wù)請(qǐng)求參數(shù)進(jìn)行校驗(yàn),如果校驗(yàn)結(jié)果都不為空,表明校驗(yàn)結(jié)果與參數(shù)說明一致,進(jìn)而說明該業(yè)務(wù)請(qǐng)求參數(shù)完整。
第二判斷單元420,用于當(dāng)所述業(yè)務(wù)參數(shù)完整時(shí),判斷所述時(shí)間戳是否在有效時(shí)間范圍內(nèi)。
業(yè)務(wù)請(qǐng)求參數(shù)中的時(shí)間戳是客戶端生成該業(yè)務(wù)請(qǐng)求時(shí)攜帶的客戶端側(cè)的時(shí)間??紤]到客戶端側(cè)的時(shí)間可能與服務(wù)端的時(shí)間不一致,而且信息傳輸需要一定的時(shí)間,因此,有效時(shí)間范圍可以是該時(shí)間戳的前后預(yù)設(shè)時(shí)間段。
第三判斷單元430,用于當(dāng)確定所述時(shí)間戳在有效時(shí)間范圍內(nèi)時(shí),根據(jù)所述設(shè)備唯一標(biāo)識(shí)判斷發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備是否一致;當(dāng)確定發(fā)送所述業(yè)務(wù)請(qǐng)求參數(shù)的終端與登錄設(shè)備一致時(shí),控制業(yè)務(wù)處理單元執(zhí)行相應(yīng)的動(dòng)作。
服務(wù)端接收到的業(yè)務(wù)請(qǐng)求參數(shù)中包含發(fā)送該業(yè)務(wù)請(qǐng)求參數(shù)的設(shè)備唯一標(biāo)識(shí),與用戶登錄該客戶端時(shí)保存的設(shè)備唯一標(biāo)識(shí)是否相同,如果兩個(gè)設(shè)備唯一標(biāo)識(shí)相同,則確定發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)的終端設(shè)備與登錄時(shí)的設(shè)備相同,表明該業(yè)務(wù)請(qǐng)求參數(shù)是由登錄設(shè)備發(fā)送的;然后,觸發(fā)業(yè)務(wù)處理單元進(jìn)行相應(yīng)的處理;否則,確定發(fā)送業(yè)務(wù)請(qǐng)求參數(shù)的終端設(shè)備與登錄時(shí)的設(shè)備不相同,表明該業(yè)務(wù)請(qǐng)求參數(shù)是另一個(gè)終端(進(jìn)而表明該客戶端可能被惡意破解)發(fā)送的。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于裝置類實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。