本公開涉及網(wǎng)絡技術(shù),尤其涉及一種業(yè)務校驗方法和裝置。
背景技術(shù):
伴隨著網(wǎng)絡技術(shù)的發(fā)展,網(wǎng)絡安全問題也更加受到重視,在業(yè)務的開展過程中,有大量的業(yè)務數(shù)據(jù)在交互時都不允許明文交互。當前一種可行的方式即對業(yè)務數(shù)據(jù)以一定的規(guī)則進行哈希后,提供給使用方,以避免原始數(shù)據(jù)造成泄露。但是,不論哪種哈希算法,都有一定的數(shù)據(jù)沖撞的可能性,即不同的源數(shù)據(jù)使用同一哈希算法后,得到相同的結(jié)果。那么這種數(shù)據(jù)沖撞的發(fā)生就可能使得錯誤的源數(shù)據(jù)也校驗通過,從而使得業(yè)務風險加大。
技術(shù)實現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供一種業(yè)務校驗方法和裝置,以提高業(yè)務校驗的安全性。
根據(jù)本公開實施例的第一方面,提供一種業(yè)務校驗方法,所述方法用于判斷目標數(shù)據(jù)與源數(shù)據(jù)是否相同,若目標數(shù)據(jù)與源數(shù)據(jù)相同,則表示校驗通過;所述方法包括:
接收待校驗的所述目標數(shù)據(jù);
對所述目標數(shù)據(jù)進行哈希,得到第一哈希值,并對所述目標數(shù)據(jù)與影響值的組合進行哈希,得到第二哈希值;
若第一哈希值與索引值相同,并且第二哈希值與所述索引值對應的輔助索引值相同,則確定所述目標數(shù)據(jù)通過校驗;所述索引值是對所述源數(shù)據(jù)哈 希得到,所述輔助索引值是由所述源數(shù)據(jù)和所述影響值的組合哈希得到。
根據(jù)本公開實施例的第二方面,提供一種業(yè)務校驗方法,包括:
接收源數(shù)據(jù),并對所述源數(shù)據(jù)進行哈希,得到索引值;對所述源數(shù)據(jù)和影響值的組合進行哈希,得到輔助索引值;
將所述索引值和輔助索引值發(fā)送至業(yè)務系統(tǒng),以使得所述業(yè)務系統(tǒng)根據(jù)所述索引值和輔助索引值進行業(yè)務校驗。
根據(jù)本公開實施例的第三方面,提供一種業(yè)務校驗裝置,所述裝置用于判斷目標數(shù)據(jù)與源數(shù)據(jù)是否相同,若目標數(shù)據(jù)與源數(shù)據(jù)相同,則表示校驗通過;所述裝置包括:
數(shù)據(jù)接收模塊,用于接收待校驗的所述目標數(shù)據(jù);
哈希處理模塊,用于對所述目標數(shù)據(jù)進行哈希,得到第一哈希值,并對所述目標數(shù)據(jù)與影響值的組合進行哈希,得到第二哈希值;
校驗判斷模塊,用于若第一哈希值與索引值相同,并且第二哈希值與所述索引值對應的輔助索引值相同,則確定所述目標數(shù)據(jù)通過校驗;所述索引值是對所述源數(shù)據(jù)哈希得到,所述輔助索引值是由所述源數(shù)據(jù)和所述影響值的組合哈希得到。
根據(jù)本公開實施例的第四方面,提供一種業(yè)務校驗裝置,包括:
數(shù)據(jù)處理模塊,用于接收源數(shù)據(jù),并對所述源數(shù)據(jù)進行哈希,得到索引值;對所述源數(shù)據(jù)和影響值的組合進行哈希,得到輔助索引值;
信息發(fā)送模塊,用于將所述索引值和輔助索引值發(fā)送至業(yè)務系統(tǒng),以使得所述業(yè)務系統(tǒng)根據(jù)所述索引值和輔助索引值進行業(yè)務校驗。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:通過對待校驗的目標數(shù)據(jù)進行哈希,并且將目標數(shù)據(jù)與影響值的組合進行哈希,若這兩個哈希值與對應的比較值相同才確定目標數(shù)據(jù)校驗通過,這種方式相對于只對目標數(shù)據(jù)進行哈希比較的方法,由于兩次哈希都相同的情況概率很小,使得業(yè)務校驗的安全性得到提高。
應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性 的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種業(yè)務校驗方法的流程圖;
圖2是根據(jù)一示例性實施例示出的另一種業(yè)務校驗方法的流程圖;
圖3是根據(jù)一示例性實施例示出的又一種業(yè)務校驗方法的流程圖;
圖4是根據(jù)一示例性實施例示出的又一種業(yè)務校驗方法的流程圖;
圖5是根據(jù)一示例性實施例示出的一種業(yè)務校驗裝置的結(jié)構(gòu)示意圖;
圖6是根據(jù)一示例性實施例示出的另一種業(yè)務校驗裝置的結(jié)構(gòu)示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
為了解決利用哈希算法時可能出現(xiàn)的數(shù)據(jù)沖撞,本申請實施例提供了一種業(yè)務校驗方法,可以使用該方法進行業(yè)務校驗,將可以有效減小數(shù)據(jù)沖撞的幾率。圖1示例了該方法的執(zhí)行流程,如下描述,在這些步驟中,本實施例不局限于其執(zhí)行順序。該方法可以包括:
在步驟101中,接收待校驗的目標數(shù)據(jù)。
其中,在業(yè)務校驗時,通常是檢驗要使用某項業(yè)務的數(shù)據(jù)是否在業(yè)務系統(tǒng)注冊過,示例性的,比如可以是,在某個讀書網(wǎng)站注冊了一個賬號,那么在用戶以后登錄該網(wǎng)站讀書時,網(wǎng)站需要驗證用戶登錄輸入的賬號是否是已經(jīng)注冊的賬號,如果是已注冊用戶,才允許用戶繼續(xù)操作。
也就是說,對于業(yè)務系統(tǒng)來說,其已經(jīng)接收到了一個初始注冊時的源數(shù)據(jù),而本步驟101中接收到的目標數(shù)據(jù),可以是用戶之后每次使用業(yè)務系統(tǒng)時輸入的數(shù)據(jù),需要經(jīng)過業(yè)務系統(tǒng)的校驗,本實施例將待校驗的數(shù)據(jù)稱為目標數(shù)據(jù)。對于執(zhí)行校驗的業(yè)務系統(tǒng)來說,校驗即驗證是否存在與目標數(shù)據(jù)相同的源數(shù)據(jù),若存在目標數(shù)據(jù)與源數(shù)據(jù)相同,則可以確認校驗通過。
在步驟102中,對所述目標數(shù)據(jù)進行哈希,得到第一哈希值,并對所述目標數(shù)據(jù)與影響值的組合進行哈希,得到第二哈希值。
本實施例中,通過哈希算法對目標數(shù)據(jù)進行校驗時,可以對該目標數(shù)據(jù)進行兩次哈希,這兩次哈希可以是使用同一哈希算法。其中一次哈希,是對目標數(shù)據(jù)本身進行哈希,可以將哈希值稱為第一哈希值;另一次哈希,是對目標數(shù)據(jù)與影響值的組合進行哈希,其中,該影響值例如可以是一個字符串,比如,123、abc等,對組合哈希得到值可以稱為第二哈希值。
例如,假設目標數(shù)據(jù)是26658,對26658哈希得到第一哈希值;并假設影響值是1234,那么目標數(shù)據(jù)與影響值的組合是“266581234”,對該組合值哈希得到第二哈希值。
在步驟103中,若第一哈希值與索引值相同,并且第二哈希值與輔助索引值相同,則確定所述目標數(shù)據(jù)通過校驗;所述索引值是對所述源數(shù)據(jù)哈希得到,所述輔助索引值是由所述源數(shù)據(jù)和所述影響值的組合哈希得到。
通過本步驟103可以看到,對于步驟102中得到的第一哈希值和第二哈希值,都要進行判斷,將第一哈希值與索引值比較,將第二哈希值與輔助索引值比較,若第一哈希值與索引值相同,并且第二哈希值與輔助索引值相同,則確定目標數(shù)據(jù)通過校驗。也就是說,本實施例的業(yè)務校驗中,要滿足兩個條件,即第一哈希值和第二哈希值都滿足上述的與對應索引值相同時,才可以確定校驗通過。
其中,索引值是對源數(shù)據(jù)哈希得到,輔助索引值是由源數(shù)據(jù)和影響值的組合哈希得到。并且,源數(shù)據(jù)所使用的影響值和步驟102中的目標數(shù)據(jù)所使用的影響值是相同的,是同一個影響值。即,如果目標數(shù)據(jù)與源數(shù)據(jù)是相同 的,那么這兩個數(shù)據(jù)使用同一哈希算法得到的數(shù)值相同(第一哈希值與索引值相同),并且這兩個數(shù)據(jù)與同一影響值組合后進行哈希得到的數(shù)值也相同(第二哈希值與輔助索引值相同)。
上述的業(yè)務校驗方法,是利用如下原理“假設數(shù)據(jù)A和數(shù)據(jù)B,兩者哈希值相等,如果設置一個影響值C,組合A+C與B+C,并且組合之后再進行哈希時,兩者哈希值依然相等的概率是1/2的256次方,基本上杜絕了數(shù)據(jù)沖撞的可能性”。假設有惡意破解者制造的攻擊數(shù)據(jù)能夠使得第一哈希值與索引值相等,但是其無法預測影響值,所以無法確保自己制造出的攻擊數(shù)據(jù)在兩次哈希過程中都能保持一致,攻擊難度成幾何倍上升,因此,該方法用相對低廉的成本,顯著提高了業(yè)務安全性,防止數(shù)據(jù)沖撞給業(yè)務帶來的風險。
圖1所示例的業(yè)務校驗方法的流程,例如,可以是業(yè)務系統(tǒng)執(zhí)行,并且,與源數(shù)據(jù)對應的索引值和輔助索引值的計算和存儲可以均由業(yè)務系統(tǒng)本身執(zhí)行,業(yè)務系統(tǒng)還可以存儲使用到的影響值??蛇x的,與源數(shù)據(jù)對應的索引值和輔助索引值的計算和存儲也可以是由業(yè)務系統(tǒng)之外的其他外部系統(tǒng)執(zhí)行,比如,可以由數(shù)據(jù)中心對源數(shù)據(jù)進行哈希以及對源數(shù)據(jù)和影響值的組合進行哈希,而業(yè)務系統(tǒng)可以是根據(jù)數(shù)據(jù)中心計算得到的索引值和輔助索引值進行業(yè)務校驗即可。那么這種情況下,外部系統(tǒng)如數(shù)據(jù)中心可以執(zhí)行圖2的流程:
在步驟201中,接收源數(shù)據(jù),并對所述源數(shù)據(jù)進行哈希,得到索引值;對所述源數(shù)據(jù)和影響值的組合進行哈希,得到輔助索引值。
例如,可以由數(shù)據(jù)中心對源數(shù)據(jù)進行哈希,得到的哈希值稱為索引值;并且,可以對源數(shù)據(jù)與影響值的組合進行哈希得到輔助索引值。
在步驟202中,將所述索引值和輔助索引值發(fā)送至業(yè)務系統(tǒng),以使得所述業(yè)務系統(tǒng)根據(jù)所述索引值和輔助索引值進行業(yè)務校驗。
例如,數(shù)據(jù)中心可以將步驟201中得到的索引值和輔助索引值發(fā)送至業(yè)務系統(tǒng),由業(yè)務系統(tǒng)根據(jù)這些索引值對目標數(shù)據(jù)進行校驗。
示例性的,比如,數(shù)據(jù)中心可以存儲有如下信息:卡號6226090215550902、根據(jù)該卡號哈希得到的索引卡號 UHSKNALFDAJLFIANMFLA、以及根據(jù)上述卡號和影響值哈希得到的輔助索引卡號UHOUJGOAINGAGAGA。數(shù)據(jù)中心可以將索引卡號和輔助索引卡號發(fā)送至業(yè)務系統(tǒng),業(yè)務系統(tǒng)可以在獲取到用戶輸入的待校驗卡號時,對待校驗卡號哈希以及使用預設影響值進行哈希,并與從數(shù)據(jù)中心獲取到的索引卡號及輔助索引卡號比對,若一致則確認卡號校驗通過。
本實施例的業(yè)務校驗方法,通過由數(shù)據(jù)中心計算源數(shù)據(jù)對應的索引值和輔助索引值,并向業(yè)務系統(tǒng)發(fā)送,可以使得業(yè)務系統(tǒng)據(jù)此進行校驗,提高業(yè)務校驗的安全性,降低哈希算法中的數(shù)據(jù)沖撞的發(fā)生概率。
在上述的例子中,哈希算法使用的影響值,可以是預設的,比如,業(yè)務系統(tǒng)可以預設一個影響值,使用該影響值進行輔助索引值的計算,并使用該影響值進行業(yè)務校驗時的計算。而在業(yè)務系統(tǒng)和數(shù)據(jù)中心一起配合執(zhí)行的系統(tǒng)框架時,可以是業(yè)務系統(tǒng)和數(shù)據(jù)中心都預設該影響值,并且兩者預設相同的影響值;或者,也可以是數(shù)據(jù)中心將計算輔助索引值使用的影響值發(fā)送給業(yè)務系統(tǒng),使得業(yè)務系統(tǒng)也使用該同一個影響值進行業(yè)務校驗時的計算。
如下通過圖3示例一個業(yè)務校驗的流程,該流程以用戶卡號的校驗為例。需要說明的是,在這個例子中,可以假設影響值是預設的,在業(yè)務系統(tǒng)和數(shù)據(jù)中心都預設了相同的影響值。并且,在圖3中,步驟301至步驟305可以是數(shù)據(jù)收集階段,比如,對用戶卡號進行數(shù)據(jù)庫的存儲;而步驟306至步驟311可以是數(shù)據(jù)校驗階段。如圖3所示,該例子可以包括:
在步驟301中,前臺系統(tǒng)可以接收到源數(shù)據(jù)卡號A,比如此時可以是用戶要進行卡號注冊。前臺系統(tǒng)可以在步驟302中將該卡號A同步至數(shù)據(jù)中心。
數(shù)據(jù)中心在接收到卡號A后,要計算兩個數(shù)值,即對卡號A哈希得到索引值,本實施例稱為索引卡號a;還要對卡號A和預設影響值的組合進行哈希,得到輔助索引卡號b。參見步驟303和304,這兩個步驟的執(zhí)行順序不限。
在步驟305中,數(shù)據(jù)中心可以將卡號A對應的索引卡號和輔助索引卡號發(fā)送至業(yè)務系統(tǒng),以備業(yè)務系統(tǒng)后續(xù)使用這兩個值進行校驗。本實施例中,不論是數(shù)據(jù)中心發(fā)送還是業(yè)務系統(tǒng)接收,都需要注意索引卡號和輔助索引卡 號的對應關(guān)系,這兩個卡號是對應同一個源卡號A的數(shù)據(jù)。即使在業(yè)務系統(tǒng)接收到以后,也要存儲這兩個數(shù)據(jù)的對應關(guān)系。
在步驟306中,前臺系統(tǒng)接收到目標卡號B,本例子中,假設該卡號B是一個惡意破解者制造的攻擊數(shù)據(jù),或者是一個無意中的自然數(shù)據(jù),并假設這個數(shù)據(jù)卡號B的特點是,與步驟301中的源卡號A不相同,但是使用相同的哈希算法后能夠得到相同的哈希值。那么本例子要識別出這種狀況的發(fā)生。
在步驟307中,前臺系統(tǒng)將目標卡號B同步至業(yè)務系統(tǒng)進行校驗。業(yè)務系統(tǒng)可以在步驟308中對目標卡號B進行哈希得到第一哈希值,并判斷是否有與第一哈希值相等的索引卡號,發(fā)現(xiàn)有索引卡號a與第一哈希值相等。
在步驟309中,業(yè)務系統(tǒng)繼續(xù)對目標卡號B和影響值C的組合進行哈希,得到第二哈希值,并將該第二哈希值與索引卡號a對應的輔助索引卡號b進行比對。本例子中,業(yè)務系統(tǒng)可以發(fā)現(xiàn)第二哈希值與輔助索引卡號不一致。
那么,業(yè)務系統(tǒng)可以確認校驗失敗,如步驟310,并在步驟311中向前臺系統(tǒng)反饋目標卡號B校驗失敗。
在本實施例的業(yè)務校驗系統(tǒng)中,通過索引值和輔助索引值這兩個值的比對,將可以有效識別出數(shù)據(jù)沖撞情況,提高業(yè)務校驗的安全性。
上述的實施例中,影響值假設是不變的,比如,業(yè)務系統(tǒng)或者數(shù)據(jù)中心都預設了一個固定的影響值,對源數(shù)據(jù)的處理以及業(yè)務校驗時都用該影響值即可。為了進一步提高安全性,還可以將影響值設置為變動的影響值。例如,對于不同的源數(shù)據(jù),可以使用不同的影響值。圖4示例了一種流程,包括:
如圖4所示,步驟401至步驟404的處理,與圖3中類似,不再詳述。只是在本實施例的步驟404中,計算輔助索引卡號時使用到的影響值C是與源卡號A對應的影響值,換做另一個源卡號,影響值也會相應變化。
本例子中,數(shù)據(jù)中心在計算得到索引卡號和輔助索引卡號后,可以存儲在數(shù)據(jù)中心,需要說明的是,數(shù)據(jù)中心在存儲時,至少將索引卡號、輔助索引卡號和影響值對應存儲,這幾個數(shù)據(jù)間存在對應關(guān)系。在步驟405中,前臺系統(tǒng)可以接收到待校驗的目標卡號B,仍然假設卡號B與源卡號A不同且 哈希得到相同的哈希值。在步驟406中,業(yè)務系統(tǒng)接收到前臺系統(tǒng)同步的目標卡號B,并在步驟407中對卡號B進行哈希得到第一哈希值。
在步驟408中,業(yè)務系統(tǒng)向數(shù)據(jù)中心發(fā)送信息獲取請求,請求中攜帶第一哈希值。數(shù)據(jù)中心可以判斷是否存在與第一哈希值相同的索引卡號,本例子中假設存在與第一哈希值相同的索引卡號a,如步驟409。接著,在步驟410和411中,數(shù)據(jù)中心可以獲取與索引卡號a對應的輔助索引卡號b和影響值C,并將其發(fā)送至業(yè)務系統(tǒng)。
業(yè)務系統(tǒng)可以根據(jù)數(shù)據(jù)中心發(fā)送的影響值C與目標卡號B組合進行哈希,得到第二哈希值,參見步驟412。在步驟413中,當業(yè)務系統(tǒng)發(fā)現(xiàn)第二哈希值與輔助索引卡號b不相同時,可以確認校驗失敗,并向前臺系統(tǒng)反饋校驗失敗的結(jié)果,如步驟414。
上述例子中的業(yè)務校驗方法,不局限于圖3或圖4所示例的架構(gòu)系統(tǒng),由業(yè)務系統(tǒng)和數(shù)據(jù)中心配合執(zhí)行也可以,或者業(yè)務系統(tǒng)自己執(zhí)行也可以,或者也可以是其他的應用系統(tǒng)或應用場景。
為了實現(xiàn)上述的方法,本申請還提供了一種業(yè)務校驗裝置,該裝置用于判斷目標數(shù)據(jù)與源數(shù)據(jù)是否相同,若目標數(shù)據(jù)與源數(shù)據(jù)相同,則表示校驗通過。如圖5所示,該裝置可以包括:數(shù)據(jù)接收模塊51、哈希處理模塊52和校驗判斷模塊53。
數(shù)據(jù)接收模塊51,用于接收待校驗的所述目標數(shù)據(jù);
哈希處理模塊52,用于對所述目標數(shù)據(jù)進行哈希,得到第一哈希值,并對所述目標數(shù)據(jù)與影響值的組合進行哈希,得到第二哈希值;
校驗判斷模塊53,用于若第一哈希值與索引值相同,并且第二哈希值與所述索引值對應的輔助索引值相同,則確定所述目標數(shù)據(jù)通過校驗;所述索引值是對所述源數(shù)據(jù)哈希得到,所述輔助索引值是由所述源數(shù)據(jù)和所述影響值的組合哈希得到。
進一步的,所述影響值是預設的,或者接收外部系統(tǒng)發(fā)送的所述影響值。
進一步的,哈希處理模塊52,用于在得到第一哈希值之后,判斷是否存 在與所述第一哈希值相同的索引值;若不存在,則確定校驗失??;若存在,則獲取與所述索引值對應的輔助索引值和影響值,并對所述目標數(shù)據(jù)與影響值的組合進行哈希,得到第二哈希值。
圖6示例了另一種業(yè)務校驗裝置的結(jié)構(gòu),該裝置可以包括:數(shù)據(jù)處理模塊61和信息發(fā)送模塊62。
數(shù)據(jù)處理模塊61,用于接收源數(shù)據(jù),并對所述源數(shù)據(jù)進行哈希,得到索引值;對所述源數(shù)據(jù)和影響值的組合進行哈希,得到輔助索引值;
信息發(fā)送模塊62,用于將所述索引值和輔助索引值發(fā)送至業(yè)務系統(tǒng),以使得所述業(yè)務系統(tǒng)根據(jù)所述索引值和輔助索引值進行業(yè)務校驗。
進一步的,信息發(fā)送模塊62,還用于接收所述業(yè)務系統(tǒng)發(fā)送的信息獲取請求,所述信息獲取請求攜帶業(yè)務系統(tǒng)對待校驗的目標數(shù)據(jù)進行哈希得到的第一哈希值;若存在與第一哈希值相同的索引值,則將所述索引值對應的輔助索引值和影響值發(fā)送至業(yè)務系統(tǒng)。
本實施例的業(yè)務校驗裝置,通過使用了索引值和輔助索引值來共同進行校驗,在第一哈希值與索引值相同,且目標數(shù)據(jù)與影響值組合哈希的第二哈希值與輔助索引值相同時,再確認校驗通過,這種兩次哈希比對且與影響值組合的方式,能夠大幅提升對哈希算法中的數(shù)據(jù)碰撞情況的識別,從而顯著提高業(yè)務校驗時的安全性。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。