本發(fā)明涉及動態(tài)電子單程票生成和驗證,尤其涉及一種基于h5頁面的動態(tài)電子單程票生成和驗證方法。
背景技術(shù):
1、電子票務(wù)系統(tǒng)已經(jīng)成為現(xiàn)代交通領(lǐng)域中不可或缺的一部分,廣泛應(yīng)用于公交、地鐵、火車等多種出行場景中。這些系統(tǒng)為用戶提供了極大的便利,使得購票和驗證過程更加快捷和高效。電子單程票作為電子票務(wù)系統(tǒng)的一種重要形式,用戶可以通過移動終端如智能手機(jī)購買,并在乘車時快速通過掃碼或nfc技術(shù)進(jìn)行驗證。
2、然而,當(dāng)前市場上的大多數(shù)電子票務(wù)系統(tǒng)在設(shè)計h5頁面時,往往采用靜態(tài)編碼方式。靜態(tài)編碼的電子票務(wù)系統(tǒng)通常是通過固定的代碼和憑證生成電子票據(jù),這種方式雖然簡化了系統(tǒng)架構(gòu),但也帶來了容易被復(fù)制和篡改的風(fēng)險。由于票據(jù)信息相對固定,技術(shù)人員可以相對容易地進(jìn)行復(fù)制,這可能導(dǎo)致票據(jù)被偽造或重復(fù)使用。同時,靜態(tài)票據(jù)在信息更新和動態(tài)驗證方面也顯得相對遲緩,難以快速響應(yīng)實時的變更需求或者緊急情況,影響用戶的便捷體驗。
3、盡管一些電子票務(wù)系統(tǒng)已經(jīng)采取了動態(tài)編碼方式來提升安全性和可靠性,通過實時生成和驗證票據(jù)信息來防止偽造和濫用,在采用動態(tài)編碼方式的票務(wù)系統(tǒng)中,進(jìn)入驗證過程中,系統(tǒng)通常需要實時與服務(wù)器進(jìn)行數(shù)據(jù)交換,以驗證電子票的有效性。然而,這個過程對網(wǎng)絡(luò)要求較高,網(wǎng)絡(luò)的不穩(wěn)定或延遲可能直接影響驗證的順利進(jìn)行。例如,用戶的手機(jī)網(wǎng)絡(luò)(如蜂窩數(shù)據(jù))在信號較弱的區(qū)域或者人流密度大的時候可能會不穩(wěn)定甚至導(dǎo)致離線,在這些情況下,動態(tài)編碼的票據(jù)無法被及時驗證,導(dǎo)致用戶無法順利進(jìn)站。特別是在交通高峰期間,車站的人流量巨大,這會加劇網(wǎng)絡(luò)擁堵問題。
4、針對上述的現(xiàn)有技術(shù)存在問題設(shè)計一種基于h5頁面的動態(tài)電子單程票生成和驗證方法是本發(fā)明研究的目的。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提一種基于h5頁面的動態(tài)電子單程票生成和驗證方法,能夠解決上述的問題。
2、本發(fā)明提供一種基于h5頁面的動態(tài)電子單程票生成和驗證方法,包括:
3、購票時,用戶端獲取電子票的票證信息、用戶標(biāo)識、時間戳,使用非對稱密鑰對電子票的票證信息、用戶標(biāo)識的數(shù)據(jù)進(jìn)行加密,得到加密電子票;
4、加密電子票結(jié)合動態(tài)更新的時間戳生成動態(tài)電子單程票,生成動態(tài)電子單程票的二維碼,通過h5頁面本地存儲動態(tài)電子單程票的二維碼;
5、驗證時,驗證端同時掃描三張電子單程票的二維碼,隨機(jī)選取兩張動態(tài)電子單程票的二維碼進(jìn)行對比,得到對比結(jié)果;
6、若對比結(jié)果相同,則拒絕驗證請求,否則根據(jù)當(dāng)前驗證繁忙程度和用戶端網(wǎng)絡(luò)狀態(tài)對電子單程票的二維碼進(jìn)行驗證。
7、進(jìn)一步,所述使用非對稱密鑰對電子票的票證信息、用戶標(biāo)識的數(shù)據(jù)進(jìn)行加密,得到加密電子票包括:
8、驗證端生成非對稱密鑰對,用戶購票時,驗證端向用戶端發(fā)送驗證端公鑰,驗證端私鑰保存在驗證端;
9、用戶端生成非對稱密鑰對,用戶購票時,向驗證端發(fā)送用戶端公鑰,用戶端私鑰保存在用戶端;
10、對電子票的票證信息、用戶標(biāo)識的數(shù)據(jù)使用用戶端私鑰加密生成數(shù)字字符串,對數(shù)字字符串使用驗證端公鑰加密,得到加密電子票。
11、進(jìn)一步,所述驗證繁忙程度通過如下步驟得到:
12、采集歷史驗證次數(shù)數(shù)據(jù)及其對應(yīng)的驗證端、時間段、節(jié)假日、周邊活動人數(shù)數(shù)據(jù),構(gòu)建繁忙程度預(yù)測訓(xùn)練樣本;
13、通過神經(jīng)網(wǎng)絡(luò)模型構(gòu)建繁忙程度預(yù)測模型,將驗證端、時間段、節(jié)假日、周邊活動人數(shù)數(shù)據(jù)作為繁忙程度預(yù)測模型的輸入,歷史驗證次數(shù)數(shù)據(jù)作為繁忙程度預(yù)測模型的輸出,訓(xùn)練繁忙程度預(yù)測模型;
14、將當(dāng)前驗證端、時間段、節(jié)假日、周邊活動人數(shù)數(shù)據(jù)輸入繁忙程度預(yù)測模型,預(yù)測當(dāng)前時間段可能驗證次數(shù);
15、若當(dāng)前時間段可能驗證次數(shù)小于第一繁忙度閾值,則標(biāo)記為當(dāng)前驗證繁忙程度為中低峰期,否則標(biāo)記為高峰期。
16、進(jìn)一步,所述根據(jù)當(dāng)前驗證繁忙程度和用戶端網(wǎng)絡(luò)狀態(tài)對電子單程票的二維碼進(jìn)行驗證包括:
17、若當(dāng)前用戶端網(wǎng)絡(luò)狀態(tài)為離線狀態(tài),根據(jù)當(dāng)前驗證繁忙程度對電子單程票的二維碼進(jìn)行離線驗證;
18、若當(dāng)前用戶端網(wǎng)絡(luò)狀態(tài)為在線狀態(tài),若當(dāng)前驗證繁忙程度為高峰期,則對電子單程票的二維碼進(jìn)行離線驗證,若當(dāng)前驗證繁忙程度為中低峰期,則對電子單程票的二維碼進(jìn)行在線密鑰交換驗證。
19、進(jìn)一步,所述在線密鑰交換驗證步驟如下:
20、對任意一張動態(tài)電子單程票的二維碼進(jìn)行驗證端私鑰驗證,得到第一電子票字符串;
21、驗證端實時獲取用戶端公鑰,對第一電子票字符串進(jìn)行用戶端公鑰驗證,得到第二電子票字符串;
22、判斷第二電子票字符串中的票證信息、用戶標(biāo)識是否正確,正確則驗證通過,否則驗證失敗。
23、進(jìn)一步,所述離線驗證步驟如下:
24、對電子單程票的二維碼進(jìn)行驗證端私鑰驗證,得到第三電子票字符串;
25、對第三電子票字符串進(jìn)行用戶端公鑰驗證,得到第四電子票字符串;
26、判斷第四電子票字符串中的票證信息、用戶標(biāo)識是否正確,正確則驗證通過,否則驗證失敗。
27、進(jìn)一步,所述根據(jù)當(dāng)前驗證繁忙程度對電子單程票的二維碼進(jìn)行離線驗證包括:
28、若當(dāng)前驗證繁忙程度為高峰期,則對兩張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,任意一張動態(tài)電子單程票的二維碼離線驗證成功則驗證通過;
29、若當(dāng)前驗證繁忙程度為中低峰期,則對兩張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,兩張動態(tài)電子單程票的二維碼離線驗證成功且時間戳間隔小于間隔閾值則驗證通過。
30、進(jìn)一步,所述若當(dāng)前驗證繁忙程度為高峰期,則對兩張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,任意一張動態(tài)電子單程票的二維碼離線驗證成功則驗證通過進(jìn)一步執(zhí)行:
31、若兩張動態(tài)電子單程票的二維碼離線驗證均失敗,則選取第三張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,若第三張動態(tài)電子單程票的二維碼離線驗證成功則驗證通過,否則驗證失敗。
32、進(jìn)一步,所述若當(dāng)前驗證繁忙程度為中低峰期,則對兩張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,兩張動態(tài)電子單程票的二維碼離線驗證成功且時間戳間隔小于間隔閾值則驗證通過進(jìn)一步執(zhí)行:
33、若兩張動態(tài)電子單程票的二維碼離線驗證均失敗,則驗證失??;
34、若兩張動態(tài)電子單程票的二維碼離線驗證成功,但是時間戳間隔大于間隔閾值,則驗證失敗。
35、進(jìn)一步,所述若當(dāng)前驗證繁忙程度為中低峰期,則對兩張動態(tài)電子單程票的二維碼進(jìn)行離線驗證,兩張動態(tài)電子單程票的二維碼離線驗證成功且時間戳間隔小于間隔閾值則驗證通過進(jìn)一步執(zhí)行:
36、若任意一張動態(tài)電子單程票的二維碼離線驗證失敗,則選取第三張動態(tài)電子單程票的二維碼進(jìn)行離線驗證;
37、若第三張動態(tài)電子單程票的二維碼離線驗證成功且時間戳與之前離線驗證通過的動態(tài)電子單程票的二維碼的時間戳間隔小于間隔閾值,則驗證通過,否則驗證失敗。
38、本發(fā)明的有益效果:
39、一是通過非對稱加密的用戶端的公鑰和私鑰加密的數(shù)字字符串確保票證信息未被篡改,并通過非對稱加密的驗證端公鑰加密保證只有驗證端可以讀取和驗證票據(jù)。驗證端在用戶購票時獲取到的用戶端公鑰,可以在網(wǎng)絡(luò)不穩(wěn)定或者離線狀態(tài)下可以使用本地的用戶端公鑰進(jìn)行驗證,這種加密模式應(yīng)用于離線或者在線應(yīng)用場景,可以有效避免電子票據(jù)離線篡改。
40、二是通過將加密電子票與動態(tài)更新的時間戳結(jié)合,生成動態(tài)電子單程票??梢源_保每張票據(jù)都是唯一的,并且可以通過時間戳來驗證其是否被截圖或者復(fù)制。通過h5頁面的本地存儲功能存儲生成的加密字符串,在手機(jī)信號不好情況下,用戶可以在離線狀態(tài)下使用動態(tài)電子單程票進(jìn)行驗證。
41、三是通過隨機(jī)選取其中兩張二維碼進(jìn)行對比,其中一張二維碼冗余備用。如果兩張二維碼讀取的結(jié)果相同,則認(rèn)為二維碼可能被復(fù)制,系統(tǒng)將拒絕此次驗證請求,無需進(jìn)行后續(xù)的驗證步驟,通過這個預(yù)校驗步驟,可以節(jié)省時間,從而達(dá)到防止二維碼被重復(fù)使用的目地。
42、四是若用戶處于離線狀態(tài)或者是高峰期驗證時,直接采用快捷的離線驗證,只有在驗證不繁忙的時候且用戶網(wǎng)絡(luò)正常的情況下才使用在線密鑰交換驗證。而離線驗證方式存在一定風(fēng)險,因此還需要根據(jù)當(dāng)前繁忙情況進(jìn)行多張動態(tài)電子票的二維碼進(jìn)行驗證。