本發(fā)明涉及數(shù)字安全技術領域,尤其是涉及一種電子編碼數(shù)據(jù)的生成方法、裝置及驗證方法、裝置。
背景技術:
本部分旨在為權利要求書中陳述的本發(fā)明的實施方式提供背景或上下文。此處的描述不因為包括在本部分中就承認是現(xiàn)有技術。
隨著互聯(lián)網(wǎng)金融的發(fā)展,以電子券作為媒介的交易形式越來越多,電子券券碼作為電子券的唯一標識,在某些領域已作為密碼進行直接消費,因此電子券券碼對其編碼規(guī)則、校驗模式等方面都有很高要求。目前業(yè)界的電子券券碼生成方法大多以隨機數(shù)等方式生成,但是這種生成方式存在以下缺陷:
1、生成效率不高:采用隨機數(shù)等方式,存在有一定的重復概率,系統(tǒng)需要經(jīng)過去重等特殊處理才能規(guī)避,生成效率不高;
2、容量不夠大:隨著業(yè)務的增長,在券碼位數(shù)有限的情況下,券碼資源可能出現(xiàn)短缺的情況,需要進行擴位或者回收,影響客戶體驗以及保存周期;
3、安全性不夠高:券碼作為消費的唯一標識,如果無可靠的防猜措施以及安全的驗券系統(tǒng),則存在被盜券的可能。目前業(yè)界驗券多采用“商戶+隨機電子券券碼”進行驗證,兩者均有被暴力破解的風險,存在一定的安全隱患;
4、數(shù)據(jù)處理效率不高:目前的電子券驗證集中到后臺交易系統(tǒng)進行統(tǒng)一驗證,沒有進行分層驗證,數(shù)據(jù)處理效率不高。
技術實現(xiàn)要素:
本發(fā)明提出了一種電子編碼數(shù)據(jù)的方法及裝置,同時還提出了一種電子編碼數(shù)據(jù)的驗證方法及裝置,解決目前的電子編碼數(shù)據(jù)生成效率不高、容量不夠大以及安全性不夠高的問題。
為了達到上述目的,本發(fā)明實施例提供一種電子編碼數(shù)據(jù)的生成方法,包括:根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位;按照設定的范圍位、順序位和隨機位的順序,將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位拼接成明文數(shù)字串;對所述明文數(shù)字串進行加密和移位處理,生成加密后的密文數(shù)字串;根據(jù)所述加密后的密文數(shù)字串生成指定位數(shù)的校驗位數(shù)字,并計算所述校驗位的插位位置,將所述校驗位數(shù)字按照所述插位位置插入到所述加密后的密文數(shù)字串中,生成電子編碼數(shù)據(jù)。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的生成裝置,包括:初始位數(shù)據(jù)生成模塊,用于根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位;明文數(shù)字串生成模塊,用于按照設定的范圍位、順序位和隨機位的順序,將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位拼接成明文數(shù)字串;加密模塊,用于對所述明文數(shù)字串進行加密和移位處理,生成加密后的密文數(shù)字串;校驗位插入模塊,用于根據(jù)所述加密后的密文數(shù)字串生成指定位數(shù)的校驗位數(shù)字,并計算所述校驗位的插位位置,將所述校驗位數(shù)字按照所述插位位置插入到所述加密后的密文數(shù)字串中,生成電子編碼數(shù)據(jù)。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證方法,包括:采集電子編碼數(shù)據(jù);計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;將所述校驗位的實際值與理論值進行比對;比對通過后,根據(jù)解密算法和排位算法恢復所述電子編碼數(shù)據(jù)的明文數(shù)據(jù)串;驗證所述明文數(shù)據(jù)串的有效性,如果驗證通過,則確認所述電子編碼數(shù)據(jù)真實有效。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證裝置,包括:采集模塊,用于采集電子編碼數(shù)據(jù);校驗位實際值計算模塊,用于計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;校驗位理論值計算模塊,用于根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;比對模塊,用于將所述校驗位的實際值與理論值進行比對;明文數(shù)據(jù)串恢復模塊,用于在比對通過后,根據(jù)解密算法和排位算法恢復所述電子編碼數(shù)據(jù)的明文數(shù)據(jù)串;有效性驗證模塊,用于驗證所述明文數(shù)據(jù)串的有效性,如果驗證通過,則確認所述電子編碼數(shù)據(jù)真實有效。
為了達到上述目的,本發(fā)明實施例還提供一種服務器,包括如上所述的電子編碼數(shù)據(jù)的驗證裝置。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證方法,包括:采集電子編碼數(shù)據(jù);計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;將所述校驗位的實際值與理論值進行比對;比對通過后,將所述電子編碼數(shù)據(jù)發(fā)送至外部服務器。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證裝置,包括:采集模塊,用于采集電子編碼數(shù)據(jù);校驗位實際值計算模塊,用于計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;校驗位理論值計算模塊,用于根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;比對模塊,用于將所述校驗位的實際值與理論值進行比對;發(fā)送模塊,用于在比對通過后,將所述電子編碼數(shù)據(jù)發(fā)送至外部服務器。
為了達到上述目的,本發(fā)明實施例還提供一種終端,包括如上所述的電子編碼數(shù)據(jù)的驗證裝置。
為了達到上述目的,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證系統(tǒng),包括如上所述的終端、如上所述的服務器以及電子券業(yè)務服務器;所述電子券業(yè)務服務器連接所述終端以及服務器,用于對中間業(yè)務相關數(shù)據(jù)進行校驗。
本發(fā)明實施例提供的電子編碼數(shù)據(jù)的生成方法、裝置、系統(tǒng)以及對應的電子編碼數(shù)據(jù)的驗證方法、裝置,使得電子券的生成效率得到極大的提高,提升了電子券的容量,增加了電子券被猜測的難度以及降低了電子券被暴力破解的風險。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例所涉及的4個電子券券碼占位區(qū)的示意圖;
圖2為本發(fā)明實施例的電子編碼數(shù)據(jù)的生成方法的處理流程圖;
圖3為圖2所示實施例中的步驟s201的處理流程圖;
圖4為圖2所示實施例中的步驟s203的處理流程圖;
圖5為圖2所示實施例中的步驟s204的處理流程圖;
圖6為本發(fā)明實施例的電子編碼數(shù)據(jù)的生成裝置的結構示意圖;
圖7為圖6所示實施例中的初始位數(shù)據(jù)生成模塊601的結構示意圖;
圖8為圖6所示實施例中的加密模塊603的結構示意圖;
圖9為圖6所示實施例中的校驗位插入模塊604的結構示意圖;
圖10為根據(jù)本發(fā)明的電子編碼數(shù)據(jù)的生成方法生成電子券的一具體實施例的示意圖;
圖11為本發(fā)明一實施例的電子編碼數(shù)據(jù)的驗證方法的處理流程圖;
圖12為對應于圖11所示的驗證方法的電子編碼數(shù)據(jù)的驗證裝置的結構示意圖;
圖13為本發(fā)明另一實施例的電子編碼數(shù)據(jù)的驗證方法的處理流程圖;
圖14為對應于圖13所示的驗證方法的電子編碼數(shù)據(jù)的驗證裝置的結構示意圖;
圖15為本發(fā)明實施例的電子券三層驗證系統(tǒng)的結構示意圖;
圖16為本發(fā)明實施例的電子券三層驗證系統(tǒng)的處理流程圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本領域技術技術人員知道,本發(fā)明的實施方式可以實現(xiàn)為一種系統(tǒng)、裝置、設備、方法或計算機程序產(chǎn)品。因此,本公開可以具體實現(xiàn)為以下形式,即:完全的硬件、完全的軟件(包括固件、駐留軟件、微代碼等),或者硬件和軟件結合的形式。
下面參考本發(fā)明的若干代表性實施方式,詳細闡釋本發(fā)明的原理和精神。
本發(fā)明首先提供了一種基于三重動態(tài)加密算法的電子編碼數(shù)據(jù)的生成方法及裝置。在此裝置和方法中,將電子編碼數(shù)據(jù)的券碼分為“范圍位”、“順序位”、“隨機位”、“校驗位”4個占位區(qū),通過采用三重動態(tài)加密算法將占位區(qū)進行組合、變形、加密、排位、關系運算等操作后,最終形成對外發(fā)布的電子編碼數(shù)據(jù),該電子編碼數(shù)據(jù)的券碼具備大容量、高安全性、高防猜性等特點,可滿足大多數(shù)業(yè)務場景的需求。
在本發(fā)明實施例中,以接觸最多的電子券為例進行說明。
首先對照圖1,對本發(fā)明涉及的4個電子券券碼占位區(qū)進行詳細說明。如圖1所示,將“電子券編碼數(shù)據(jù)占位”劃分為4個占位區(qū),分別為“范圍位an”、“順序位bn”、“隨機位cn”、“校驗位dn”,其中n表示每個占位區(qū)所占的實際位數(shù),其需根據(jù)實際情況而定。電子券券碼的各占位區(qū)支持數(shù)字、字母、特殊符號等字符,考慮到終端驗券輸入的便捷性,建議4個占位區(qū)均采用數(shù)字組成。由于電子券券碼對外直接暴露存在較大的風險,因此,電子券券碼的每個占位區(qū)在正式發(fā)布前需要通過一定的算法進行變形、加密、移位、亂序等操作,以確保電子券券碼的安全性。
所述“范圍位an”可標識電子券應用的范圍,范圍可以是時間范圍、空間范圍。比如:“范圍位”采用4位時間范圍,取當前所在年的最后一位,以及當前處于一年中的哪一天,則可確保電子券應用范圍為10年內(nèi)的每一天。
所述“順序位bn”以順序序列為基礎遞增,防止券碼重復,其在整個電子券編碼數(shù)據(jù)中實際占位數(shù)越多,電子券的容量越大。比如:“順序位”采用8位表示,則可以確保在“范圍位”設定的范圍下至少可容納1億張電子券券碼。
所述“隨機位cn”以隨機數(shù)作為基礎產(chǎn)生,用于增加電子券券碼被猜測的難度,同時可進一步擴大電子券券碼的容量。
所述“校驗位dn”是以“范圍位”、“順序位”、“隨機位”為基礎,通過算法動態(tài)產(chǎn)生。由于“校驗位”與其他三個占位區(qū)存在一定的邏輯對應關系,因此,可降低電子券券碼被暴力破解的風險。
圖2為本發(fā)明實施例的電子編碼數(shù)據(jù)的生成方法的處理流程圖。如圖2所示,包括:
步驟s201,根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位;
步驟s202,按照設定的范圍位、順序位和隨機位的順序,將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位拼接成明文數(shù)字串;
步驟s203,對所述明文數(shù)字串進行加密和移位處理,生成加密后的密文數(shù)字串;
步驟s204,根據(jù)所述加密后的密文數(shù)字串生成指定位數(shù)的校驗位數(shù)字,并計算所述校驗位的插位位置,將所述校驗位數(shù)字按照所述插位位置插入到所述加密后的密文數(shù)字串中,生成電子編碼數(shù)據(jù)。
在本實施例的步驟s201中,所述根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位,如圖3所示,其具體包括以下步驟:
步驟s2011,根據(jù)所述范圍位因子,生成指定位數(shù)的范圍位數(shù)字串,可采用的公式為:dcode=f(t),其中t為范圍位因子,dcode為范圍位數(shù)字串。以時間劃分范圍為例,采用julian日期格式,4位長度yddd,可以確保10年內(nèi)不會重復。
步驟s2012,根據(jù)所述順序位因子,采用序號發(fā)生器,生成指定位數(shù)的順序位數(shù)字串,可采用的公式為:scode=g(e),其中e為范圍位因子,scode為范圍位數(shù)字串。以順序號為例,采用序號發(fā)生器,8位長度,每使用一次后加1,從00000000開始,可以確保在一個范圍位內(nèi),有1億個可用序號資源。
步驟s2013,根據(jù)所述隨機位因子,采用隨機函數(shù)生成指定位數(shù)的隨機位數(shù)字串。可采用的公式為:rcode=h(n),其中n為范圍位因子,rcode為范圍位數(shù)字串。采用隨機函數(shù)生成無序數(shù)字串,以3位長度為例,可以確保在每一個序號內(nèi),有1千種可能性。
需要說明的是,步驟s2011、s2012、s2013可以同時進行,即同時計算范圍位數(shù)字串、順序位數(shù)字串以及隨機位數(shù)字串,也可以順序進行,但是步驟s2011、s2012、s2013的執(zhí)行是沒有先后順序的。
在本實施例的步驟s202中,所述按照設定的范圍位、順序位和隨機位的順序,將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位拼接成明文數(shù)字串,其具體包括:
將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位按照任意指定次序的排列算法,拼接成所述明文數(shù)字串??刹捎玫墓綖椋簃0=j(dcode,scode,rcode),其中dcode為范圍位數(shù)字串,scode為范圍位數(shù)字串,rcode為范圍位數(shù)字串。具體實施時,將送入的字符串按任意指定次序的排列算法,拼接出新的字符串輸出。以15位長度字符串為例,排列組合有15?。?307674368000種可能性。
在本實施例的步驟s203中,所述對所述明文數(shù)字串進行加密和移位處理,生成加密后的密文數(shù)字串,如圖4所示,其具體可包括以下步驟:
步驟s2031,根據(jù)設定的偏移密鑰,將所述明文數(shù)字串進行加密處理,生成動態(tài)加密密文數(shù)字串。具體實施時,根據(jù)動態(tài)密鑰k,將券碼明文數(shù)字串m0根據(jù)偏移算法處理生成密文數(shù)字串m1,完成第一重動態(tài)加密,可采用的公式為:
ci=mod(m0i+ki,10){i∈[0,n]};
其中,明文數(shù)字串m0=m00m01m02...m0n,偏移密鑰k=k0k1k2...kn,密文數(shù)字串m1=c0c1c2...cn。
步驟s2032,根據(jù)排位密鑰,將所述動態(tài)加密密文數(shù)字串進行重新排位,生成所述加密后的密文數(shù)字串。具體實施時,根據(jù)排位密鑰l,將密文數(shù)字串m1重新排位生成密文數(shù)字串m2,完成第二重動態(tài)加密,可采用的公式為:
m2=w(m1,l);其中,密文數(shù)字串m1=m10m11m12...m1n,排位密鑰l=l0l1l2...ln。
在本實施例的步驟s204中,所述根據(jù)所述加密后的密文數(shù)字串生成指定位數(shù)的校驗位數(shù)字,并計算所述校驗位的插位位置,如圖5所示,具體包括:
步驟s2041,將所述加密后的密文數(shù)字串利用2121算法進行處理,生成所述指定位數(shù)的校驗位數(shù)字,所采用的公式為vcode=t(m2),其中m2為第二重加密密文數(shù)字串,vcode為生成的指定位數(shù)的校驗位數(shù)字。
經(jīng)過排位算法后的密文字符串,無需區(qū)分范圍位、順序位、隨機位,可視同完整的數(shù)字串,對其進行校驗位計算。以2121算法為例:
步驟s2042,根據(jù)所述校驗位數(shù)字和發(fā)行公共密鑰,計算所述校驗位的插位位置。
將校驗位vcode按照插位位置插入到第二重加密密文數(shù)據(jù)串m2,生成對外發(fā)布的券碼m3,完成第三重動態(tài)加密,即m3=p(m2,z,vcode)。
需要說明的是,上述步驟中的第一重加密、第二重加密和排位算法、插位位置算法都屬于現(xiàn)有技術,本領域技術人員可以根據(jù)常規(guī)技術手段來實現(xiàn)。
應當注意,盡管在附圖中以特定順序描述了本發(fā)明方法的操作,但是,這并非要求或者暗示必須按照該特定順序來執(zhí)行這些操作,或是必須執(zhí)行全部所示的操作才能實現(xiàn)期望的結果。附加地或備選地,可以省略某些步驟,將多個步驟合并為一個步驟執(zhí)行,和/或將一個步驟分解為多個步驟執(zhí)行。例如,上述的電子券券碼生成流程中,由于不同電子券券碼在生成流程之間無依賴關系,因此,電子券券碼可批量并行生成。同時,在同一個電子券券碼生成流程中,由于“范圍位”、“順序位”、“隨機位”之間無依賴關系,因此,相關步驟可并行執(zhí)行。
在介紹了本發(fā)明示例性實施方式的方法之后,接下來,參考圖6對本發(fā)明示例性實施方式的電子編碼數(shù)據(jù)的生成裝置進行介紹。該裝置的實施可以參見上述方法的實施,重復之處不再贅述。以下所使用的術語“模塊”和“單元”,可以是實現(xiàn)預定功能的軟件和/或硬件。盡管以下實施例所描述的模塊較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構想的。
圖6為本發(fā)明實施例的一種電子編碼數(shù)據(jù)的生成裝置的結構示意圖。如圖所示,包括:
初始位數(shù)據(jù)生成模塊601,用于根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位;
明文數(shù)字串生成模塊602,用于按照設定的范圍位、順序位和隨機位的順序,將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位拼接成明文數(shù)字串;
加密模塊603,用于對所述明文數(shù)字串進行加密和移位處理,生成加密后的密文數(shù)字串;
校驗位插入模塊604,用于根據(jù)所述加密后的密文數(shù)字串生成指定位數(shù)的校驗位數(shù)字,并計算所述校驗位的插位位置,將所述校驗位數(shù)字按照所述插位位置插入到所述加密后的密文數(shù)字串中,生成電子編碼數(shù)據(jù)。
在本實施例中,所述初始位數(shù)據(jù)生成模塊601用于根據(jù)預設的范圍位因子、順序位因子和隨機位因子,分別生成電子編碼數(shù)據(jù)的范圍位、順序位和隨機位,如圖7所示,其具體包括:
范圍位生成單元6011,用于根據(jù)所述范圍位因子,生成指定位數(shù)的范圍位數(shù)字串,所述范圍位數(shù)字串為時間劃分,采用julian日期格式;
順序位生成單元6012,用于根據(jù)所述順序位因子,采用序號發(fā)生器,生成指定位數(shù)的順序位數(shù)字串;
隨機位生成單元6013,用于根據(jù)所述隨機位因子,采用隨機函數(shù)生成指定位數(shù)的隨機位數(shù)字串。
在本實施例中,所述明文數(shù)字串生成模塊602具體用于:將所述電子編碼數(shù)據(jù)的范圍位、順序位和隨機位按照任意指定次序的排列算法,拼接成所述明文數(shù)字串。
在本實施例中,如圖8所示,所述加密模塊603具體包括:
動態(tài)加密單元6031,用于根據(jù)設定的偏移密鑰,將所述明文數(shù)字串進行加密處理,生成動態(tài)加密密文數(shù)字串;
排位單元6032,用于根據(jù)排位密鑰,將所述動態(tài)加密密文數(shù)字串進行重新排位,生成所述加密后的密文數(shù)字串。
在本實施例中,如圖9所示,所述校驗位插入模塊604具體包括:
校驗位數(shù)字生成單元6041,用于將所述加密后的密文數(shù)字串利用2121算法進行處理,生成所述指定位數(shù)的校驗位數(shù)字;
插位位置生成單元6042,用于根據(jù)所述校驗位數(shù)字和發(fā)行公共密鑰,計算所述校驗位的插位位置。
此外,盡管在上文詳細描述中提及了電子編碼數(shù)據(jù)的生成裝置的若干單元,但是這種劃分僅僅并非強制性的。實際上,根據(jù)本發(fā)明的實施方式,上文描述的兩個或更多單元的特征和功能可以在一個單元中具體化。同樣,上文描述的一個單元的特征和功能也可以進一步劃分為由多個單元來具體化。
下面參照圖10對本發(fā)明的電子券生成流程進行示例說明。本示例中電子券券碼以16位數(shù)字表示,其中范圍位4位,順序位8位,隨機位3位,校驗位1位。
步驟401:“范圍位生成單元6011”生成4位范圍位數(shù)字d1、d2、d3、d4,“順序位生成單元6012”生成8位順序位數(shù)字s1、s2、s3、s4、s5、s6、s7、s8,“隨機位生成單元6013”生成3位隨機位數(shù)字r1、r2、r3,“明文數(shù)字串生成模塊602”將“范圍位”、“順序位”、“隨機位”按順序拼接成明文數(shù)字串:[d1][d2][d3][d4][s1][s2][s3][s4][s5][s6][s7][s8][r1][r2][r3]。
步驟402:“動態(tài)加密單元6031”讀取16位偏移密鑰[k1][k2][k3][k4][k5][k6][k7][k8][k9][k10][k11][k12][k13][k14][k15]。
步驟403:“動態(tài)加密單元6031”按加密算法對“步驟401”生成的“明文字符串”進行加密,形成第一重動態(tài)加密后的密文數(shù)字串[a1][a2][a3][a4][b1][b2][b3][b4][b5][b6][b7][b8][c1][c2][c3]。
步驟404:“排位單元6032”讀取16位排位密鑰[l1][l2][l3][l4][l5][l6][l7][l8][l9][l10][l11][l12][l13][l14][l15]。
步驟405:“排位單元6032”按照加密算法對“步驟403”生成的“密文數(shù)字串”進行重新排位,形成第二重動態(tài)加密后的密文數(shù)字串[a1][b1][b2][b3][b4][a2][b5][a3][c1][a4][b6][c2][b7][b8][c3]。
步驟406:“校驗位數(shù)字生成單元6041”為“步驟405”生成1位校驗位d1。
步驟407:“插位位置生成單元6042”為“步驟406”生成的校驗位d1計算對應的插位位置。
步驟408:“插位位置生成單元6042”將“步驟406”生成的校驗位d1按“步驟407”計算出的插位位置插入到“步驟405”的密文數(shù)字串中,生成第三重動態(tài)加密后的密文數(shù)字串,即對外發(fā)布的電子券券碼序列[a1][b1][b2][b3][b4][a2][b5][a3][c1][a4][b6][c2][d1][b7][b8][c3]。
對應于本發(fā)明實施例的電子券券碼的生成方法,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證方法,如圖11所示,其包括以下步驟:
步驟s1101,采集電子編碼數(shù)據(jù);
步驟s1102,計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;
步驟s1103,根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;
步驟s1104,將所述校驗位的實際值與理論值進行比對;
步驟s1105,比對通過后,將所述電子編碼數(shù)據(jù)發(fā)送至外部服務器。
在本方法實施例中,步驟s1101中采集的電子編碼數(shù)據(jù)為通過掃碼或手工錄入券碼的方式采集的原始券碼,該原始券碼即為通過本發(fā)明的電子編碼數(shù)據(jù)生成方法生成的三重加密后的密文數(shù)據(jù)串。本實施例的電子券驗證為電子券的有效性驗證,即對其校驗位進行驗證,確認其是否屬于某一商戶所有。步驟s1102和s1103對應的驗證方法所采用程序與上述電子券生成所對應的校驗位及其插入位置的生成方法所對應的程序基本的原理是相同的或者采用其逆計算,因此不再做詳述。
對應于圖11所示的電子編碼數(shù)據(jù)的驗證方法,本發(fā)明還提供一種電子編碼數(shù)據(jù)的驗證裝置,如圖12所示,包括:
采集模塊1101,用于采集電子編碼數(shù)據(jù);
校驗位實際值計算模塊1102,用于計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;
校驗位理論值計算模塊1103,用于根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;
比對模塊1104,用于將所述校驗位的實際值與理論值進行比對;
發(fā)送模塊1105,用于在比對通過后,將所述電子編碼數(shù)據(jù)發(fā)送至外部服務器。
圖11所示的電子編碼數(shù)據(jù)的驗證裝置可存儲在一終端裝置中,該終端裝置可以是pc機、pos機、智能手機、平板電腦或者其他類似的終端設備,其通過無線或者有線方式連接外部的電子券券碼驗證服務器。
對應于上述實施例的電子券券碼的生成方法,本發(fā)明實施例還提供一種電子編碼數(shù)據(jù)的驗證方法,如圖13所示,其包括以下步驟:
步驟s1301,采集電子編碼數(shù)據(jù);
步驟s1302,計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;
步驟s1303,根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;
步驟s1304,將所述校驗位的實際值與理論值進行比對;
步驟s1305,比對通過后,根據(jù)解密算法和排位算法恢復所述電子編碼數(shù)據(jù)的明文數(shù)據(jù)串;
步驟s1306,驗證所述明文數(shù)據(jù)串的有效性,如果驗證通過,則確認所述電子編碼數(shù)據(jù)真實有效。
在本實施例中,步驟s1301中采集的電子編碼數(shù)據(jù)為包括有圖12所示的電子編碼數(shù)據(jù)的驗證裝置的終端設備發(fā)送的經(jīng)過券碼有效性和商戶有效性校驗后的有效的電子券券碼。券碼有效性的校驗位通過校驗電子券的校驗位,驗證電子券的有效性,例如校驗電子券是否屬于某一商戶所有。商戶有效性為校驗商戶編號、操作員編號、簽到時間、終端設備等的有效性,即校驗電子券的驗證環(huán)境是否安全。步驟s1102-1106對應的驗證方法所采用程序與上述電子券生成所對應的程序基本的原理是相同的或者采用其逆計算,因此不再做詳述。
對應于圖13所示的電子編碼數(shù)據(jù)的驗證方法,本發(fā)明還提供一種電子編碼數(shù)據(jù)的驗證裝置,如圖14所示,包括:
采集模塊1401,用于采集電子編碼數(shù)據(jù);
校驗位實際值計算模塊1402,用于計算所述電子編碼數(shù)據(jù)中的校驗位位置,并根據(jù)所述校驗位位置計算校驗位的實際值;
校驗位理論值計算模塊1403,用于根據(jù)所述電子編碼數(shù)據(jù)計算所述電子編碼數(shù)據(jù)的校驗位的理論值;
比對模塊1404,用于將所述校驗位的實際值與理論值進行比對;
明文數(shù)據(jù)串恢復模塊1405,用于在比對通過后,根據(jù)解密算法和排位算法恢復所述電子編碼數(shù)據(jù)的明文數(shù)據(jù)串;
有效性驗證模塊1406,用于驗證所述明文數(shù)據(jù)串的有效性,如果驗證通過,則確認所述電子編碼數(shù)據(jù)真實有效。
圖14所示的電子編碼數(shù)據(jù)的驗證裝置可存儲在一服務器中,通過無線或者有線方式采集經(jīng)過業(yè)務有效性驗證后的電子券券碼,進而完成電子券券碼的驗證。
當然,在進行電子券券碼驗證時,不但要驗證電子券券碼的有效性,還要驗證商戶信息,終端信息、操作員身份信息、操作簽到時間信息等,因此,在終端設備和電子編碼數(shù)據(jù)驗證服務器之間,還包括有電子券業(yè)務服務器,以完成對業(yè)務相關數(shù)據(jù)的校驗,即在對電子券券碼的有效性進行第一層校驗后,完成對電子券的第二層校驗,而電子編碼數(shù)據(jù)驗證服務器完成第三層校驗。
對應于圖11-圖14所示電子券驗證方法及裝置,圖15為本發(fā)明實施例的電子券三層驗證系統(tǒng)的結構示意圖。在該系統(tǒng)及方法中,將電子券驗證操作分為“終端驗證”、“業(yè)務服務器驗證”、“驗證服務器驗證”三層驗證,不僅提高了驗券效率,緩解了交易服務器的壓力,同時,可極大程度地降低系統(tǒng)被惡意攻擊的可能性,提升系統(tǒng)運行的安全性與穩(wěn)定性。
如圖15所示,本實施例的電子券三層驗證系統(tǒng)包括“終端裝置1501”、“運營商網(wǎng)絡通訊服務器1502”、“電子券業(yè)務服務器1503”、“電子券驗證服務器1504”。其中,所述“終端裝置1501”通過運營商網(wǎng)絡與“運營商網(wǎng)絡通訊服務器1502”連接;所述“運營商網(wǎng)絡通訊服務器1502”通過有線網(wǎng)絡與“電子券業(yè)務服務器1503”進行數(shù)據(jù)交互;所述“電子券業(yè)務服務器1503”通過有線網(wǎng)絡與“電子券驗證服務器1504”進行數(shù)據(jù)交互。
其中,所述“終端裝置1501”,可以是pc機、pos機、智能手機、平板電腦或者其他類似的終端設備,該裝置上需要安裝電子券驗券程序以及電子券終端校驗程序?!半娮尤炄绦颉毙枰ǖ幌抻凇吧虘舨僮鲉T簽到”、“輸入券碼”、“券碼二維碼掃描”、“收集終端設備信息”、“數(shù)據(jù)加密”等功能,電子券終端校驗程序需要包括但不限于“校驗位數(shù)字生成單元6041”和“插位位置生成單元6042”所對應的程序,通過“電子券終端校驗”完成電子券的第一層校驗。
所述“運營商網(wǎng)絡通訊服務器1502”通過運營商網(wǎng)絡與“終端裝置1501”以密文方式進行數(shù)據(jù)交互,交互的數(shù)據(jù)包括但不限于電子券券碼,商戶編號,操作員編碼,操作員簽到時間,終端設備信息,交易數(shù)據(jù)等?!斑\營商網(wǎng)絡通訊服務器1502”通過有線網(wǎng)絡與“電子券業(yè)務服務器1503”進行交易數(shù)據(jù)交互,起到網(wǎng)絡通訊的作用。
所述“電子券業(yè)務服務器1503”,通過有線網(wǎng)絡與“運營商網(wǎng)絡通訊服務器1502”、“電子券驗證服務器1504”進行數(shù)據(jù)交互?!半娮尤瘶I(yè)務服務器1503”需要包括但不限于“數(shù)據(jù)解密”、“商戶核對”、“操作員核對”、“操作簽到時間核對”、“終端設備信息核對”等功能。通過“電子券業(yè)務服務器1503”對業(yè)務相關數(shù)據(jù)的校驗,完成電子券的第二層校驗。
所述“電子券驗證服務器1504”,通過有線網(wǎng)絡與“電子券業(yè)務服務器1503”進行數(shù)據(jù)交互?!半娮尤炞C服務器1504”需要包括但不限于“校驗位數(shù)字生成單元6041”和“插位位置生成單元6042”、“排位單元6032”、“動態(tài)加密單元6031”等程序。通過“電子券驗證服務器1504”對電子券的校驗,完成電子券的第三層校驗。
下面參照圖16,對本發(fā)明實施例的電子券三層驗證系統(tǒng)的工作流程圖進行詳細說明:
步驟1601:客戶在消費終端使用電子券。
步驟1602:終端可以采用掃碼或手工錄入券碼的方式采集券碼。
步驟1603:“插位位置生成單元6042”計算出校驗位所在券碼的位置,得到“券碼校驗位”終端采集的實際值;“校驗位數(shù)字生成單元6041”計算得到券碼校驗位的理論值。
步驟1604:對比“券碼校驗位”的實際值與理論值。若相符,則終端校驗通過,執(zhí)行步驟1605。若不符,則校驗失敗,執(zhí)行步驟1617,返回交易拒絕信息給終端。
步驟1605:從終端采集但不限于商戶編號、操作員編號、簽到時間、終端設備、券碼等信息。
步驟1606:將交易信息加密后傳輸給電子券業(yè)務服務器。
步驟1607:電子券業(yè)務服務器接收到交易信息后,進行解密拆包。
步驟1608:電子券業(yè)務服務器對終端上送的商戶編號、操作員編號、簽到時間、終端設備等信息進行核對。
步驟1609:若相符,則將交易信息傳輸給“電子券驗證服務器”,并執(zhí)行步驟1610;若不符,則執(zhí)行步驟1615,將錯誤信息反饋給終端。
步驟1610:“電子券驗證服務器”接受到交易信息后,采用“插位位置生成單元6042”計算出校驗位所在券碼的位置,得到“券碼校驗位”終端采集的實際值;采用“校驗位數(shù)字生成單元6041”計算得到券碼校驗位的理論值。
步驟1611:對比“券碼校驗位”的實際值與理論值。若相符,則執(zhí)行步驟1612。若不符,則校驗失敗,執(zhí)行步驟1615,返回交易拒絕信息給終端。
步驟1612:“排位單元6032”恢復密文正常序列,再調用“動態(tài)加密單元6031”恢復電子券券碼明文。
步驟1613:根據(jù)電子券券碼明文信息,在驗證服務器進行有效性核對。
步驟1614:若核對正確,則確認電子券真實有效;若核對錯誤,則為非法數(shù)據(jù)。核對完成后,執(zhí)行步驟1615,將驗證結果返回給終端。
步驟1615:電子券業(yè)務服務器對返回結果進行傳輸加密。
步驟1616:終端對電子券業(yè)務服務器返回的結果信息進行解密。
步驟1617:終端顯示返回結果,交易結束。
本發(fā)明提供的一種電子編碼數(shù)據(jù)的生成方法、系統(tǒng)以及對應的電子編碼數(shù)據(jù)的驗證方法、裝置,改進了現(xiàn)有電子券生成在效率、容量、安全、防猜策略上存在的部分缺陷,結合電子券三層驗證系統(tǒng),使電子券在驗券效率、防暴力破解、緩解服務器壓力等方面得到了進一步增強。具體效果如下:
1.將電子券分為“范圍位”、“順序位”、“隨機位”、“校驗位”,生成時可并行生成,生成效率得到極大的提高。
2.“范圍位”與“順序位”的配合使用,不僅提升了電子券的容量,同時也解決了電子券券碼重復問題。
3.采用“動態(tài)密鑰偏移算法”、“券碼排位算法”、“動態(tài)插位算法”對電子券明文進行加密變形以及重新排序后,呈現(xiàn)出無規(guī)律性,增加了電子券碼被猜測的難度。
4.采用“校驗位”后,使“范圍位”、“順序位”、“隨機位”與“校驗位”存在一定的邏輯對應關系,降低了電子券被暴力破解的風險。
并且,電子券三層驗證系統(tǒng)從終端層、業(yè)務服務器層、驗證服務器層上分別進行了不同維度的驗證,一方面提高了驗券的效率,極大程度地降低了電子券被惡意試券的概率;另一方面,可以防止由于惡意試券對系統(tǒng)帶來的壓力,提升了系統(tǒng)的穩(wěn)定性。
本領域內(nèi)的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
本發(fā)明中應用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應理解為對本發(fā)明的限制。