本申請(qǐng)涉及圖形圖像技術(shù)領(lǐng)域,特別涉及一種二維碼生成方法及其設(shè)備和二維碼識(shí)別方法及其設(shè)備。
背景技術(shù):
二維碼又稱(chēng)二維條形碼,它通過(guò)某種特定幾何圖形按一定規(guī)律在平面(二維方向)上分布形成的條/空相間圖形來(lái)記錄數(shù)據(jù)符號(hào)信息。二維碼具有信息容量大、編碼范圍廣、容錯(cuò)力強(qiáng)、譯碼可靠性高等特點(diǎn),同時(shí)還具有成本低、易制作等優(yōu)勢(shì)。因此,二維碼在人們生活中得到廣泛應(yīng)用。
隨著互聯(lián)網(wǎng)的發(fā)展和移動(dòng)終端的普及,生活中的二維碼也隨處可見(jiàn)。例如,商家可將支付二維碼張貼在付款處,用戶(hù)可利用應(yīng)用中的掃描二維碼功能進(jìn)行掃描。或者商家在對(duì)商品進(jìn)行推廣時(shí),可將app的下載二維碼張貼在人流較多的地方(例如,地鐵、商場(chǎng)等),吸引過(guò)往人群掃描二維碼進(jìn)行應(yīng)用下載。因此,商家或第三方需要向用戶(hù)提供真實(shí)有效的二維碼,而用戶(hù)需要對(duì)這些二維碼進(jìn)行有效地校驗(yàn)。
在對(duì)現(xiàn)有技術(shù)的研究和實(shí)踐過(guò)程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),人們很難從肉眼判斷二維碼的真?zhèn)?,并且在二維碼識(shí)別過(guò)程中,手機(jī)應(yīng)用中的掃描單元會(huì)在不進(jìn)行任何驗(yàn)證的情況下直接對(duì)各種二維碼進(jìn)行識(shí)別。由此可以看出,目前存在如下需求:出于保證二維碼真實(shí)有效性的考慮而生成二維碼的技術(shù)方案,相應(yīng)地也存在這樣的需求:在識(shí)別二維碼時(shí)對(duì)二維碼進(jìn)行真?zhèn)闻卸ǖ募夹g(shù)方案。
上述信息僅作為背景信息被呈現(xiàn)以幫助理解本公開(kāi)。至于任何上述信息是否可應(yīng)用為針對(duì)本公開(kāi)的現(xiàn)有技術(shù),尚未做出決定,也未做出聲明。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種二維碼生成方法及其設(shè)備和二維碼識(shí)別方法及其設(shè)備,旨在解決上述問(wèn)題。
本發(fā)明的一方面提供一種二維碼生成方法,包括:第一服務(wù)器向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;第二服務(wù)器根據(jù)接收到的生成二維碼的請(qǐng)求,對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器;第一服務(wù)器利用所述二維碼信息,生成二維碼。
本發(fā)明的一方面提供一種二維碼生成方法,所述方法由第一服務(wù)器執(zhí)行,包括:向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;從第二服務(wù)器接收由第二服務(wù)器生成的包含有數(shù)字簽名的二維碼信息;利用所述二維碼信息,生成二維碼。
本發(fā)明的一方面提供二維碼生成設(shè)備,包括:發(fā)送單元,向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;接收單元,從第二服務(wù)器接收由第二服務(wù)器生成的包含有數(shù)字簽名的二維碼信息;生成單元,利用所述二維碼信息,生成二維碼。
本發(fā)明的一方面提供一種二維碼生成方法,所述方法由第二服務(wù)器執(zhí)行,包括:從第一服務(wù)器接收生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器。
本發(fā)明的一方面提供一種二維碼生成裝置,包括:接收單元,從第一服務(wù)器接收生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;處理單元,對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;發(fā)送單元,將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器。
本發(fā)明的一方面提供一種二維碼生成系統(tǒng),所述系統(tǒng)包括第一服務(wù)器和第二服務(wù)器,第一服務(wù)器包括:發(fā)送單元,向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;接收單元,從第二服務(wù)器接收由第一服務(wù)器生成的包含有數(shù)字簽名的二維碼信息;生成單元,利用所述二維碼信息,生成二維碼;第二服務(wù)器包括:接收單元,從第一服務(wù)器接收所述請(qǐng)求;處理單元,對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;發(fā)送單元,將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器。
本發(fā)明的另一方面提供一種二維碼識(shí)別方法,包括:?jiǎn)?dòng)與對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名的服務(wù)器對(duì)應(yīng)的應(yīng)用;利用所述應(yīng)用中的掃描單元掃描所述二維碼;利用公鑰對(duì)掃描的二維碼進(jìn)行驗(yàn)證;若驗(yàn)證成功,則識(shí)別出與掃描的二維碼對(duì)應(yīng)的信息。
本發(fā)明的另一方面提供一種二維碼識(shí)別設(shè)備,包括:?jiǎn)?dòng)單元,啟動(dòng)與對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名的服務(wù)器對(duì)應(yīng)的應(yīng)用;掃描單元,利用所述應(yīng)用中的掃描單元掃描所述二維碼;驗(yàn)證單元,利用公鑰對(duì)掃描的二維碼進(jìn)行驗(yàn)證;識(shí)別單元,在驗(yàn)證單元驗(yàn)證成功的情況下,識(shí)別出與掃描的二維碼對(duì)應(yīng)的信息。
與現(xiàn)有技術(shù)相比,根據(jù)本發(fā)明的實(shí)施例通過(guò)一服務(wù)器與另一服務(wù)器之間協(xié)同作用產(chǎn)生二維碼,增強(qiáng)了二維碼的安全性和有效性,并且方便在二維碼識(shí)別過(guò)程中識(shí)別出二維碼是否被篡改。此外,根據(jù)本發(fā)明的另一實(shí)施例通過(guò)特定應(yīng)用利用公鑰識(shí)別出與二維碼對(duì)應(yīng)地信息,增加了二維碼識(shí)別過(guò)程中的真?zhèn)闻卸?,防止二維碼被篡改。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說(shuō)明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
圖1是應(yīng)用根據(jù)本發(fā)明的實(shí)施例的二維碼生成方法的場(chǎng)景圖;
圖2是圖1中所示出的服務(wù)器110與服務(wù)器120之間的交互處理的示意圖;
圖3是根據(jù)本發(fā)明的實(shí)施例的識(shí)別二維碼的示意圖;
圖4是根據(jù)本發(fā)明的實(shí)施例的由第一服務(wù)器執(zhí)行的二維碼生成方法的流程圖;
圖5是執(zhí)行如圖4所示的二維碼生成方法的二維碼生成設(shè)備的框圖;
圖6是根據(jù)本發(fā)明的實(shí)施例的由第二服務(wù)器執(zhí)行的二維碼生成方法的流程圖;
圖7是執(zhí)行如圖6所示的二維碼生成方法的二維碼生成設(shè)備的框圖;
圖8是根據(jù)本發(fā)明的實(shí)施例的二維碼識(shí)別方法的流程圖;
圖9是根據(jù)本發(fā)明的實(shí)施例的執(zhí)行如圖8所述的二維碼識(shí)別方法的二維碼識(shí)別設(shè)備的框圖;
圖10是根據(jù)本發(fā)明的實(shí)施例的電子設(shè)備的框圖。
具體實(shí)施方式
為使本申請(qǐng)的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本申請(qǐng)具體實(shí)施例及相應(yīng)的附圖對(duì)本申請(qǐng)技術(shù)方案進(jìn)行清楚、完整地描述。顯然,所描述的實(shí)施例僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
在下文中,將參照附圖更詳細(xì)地描述實(shí)施例。相同的標(biāo)號(hào)始終表示相同的元件。為了更清楚地理解本發(fā)明,以下將對(duì)本發(fā)明所涉及的術(shù)語(yǔ)進(jìn)行解釋。
終端/電子裝置:通常是指網(wǎng)絡(luò)系統(tǒng)中由用戶(hù)使用的并用于與服務(wù)器進(jìn)行通信的裝置,本發(fā)明的實(shí)施例提供的二維碼生成方法可由二維碼生成設(shè)備執(zhí)行,并且本發(fā)明的實(shí)施例提供的二維碼識(shí)別方法可由二維碼識(shí)別設(shè)備執(zhí)行,而二維碼生成設(shè)備和二維碼識(shí)別設(shè)備可以是終端/電子裝置。根據(jù)本發(fā)明的終端/電子裝置可包括但不限于具有顯示單元的以下任意設(shè)備:個(gè)人計(jì)算機(jī)(pc)、移動(dòng)裝置(諸如,蜂窩電話(huà)、個(gè)人數(shù)字助理(pda)、數(shù)碼相機(jī)、便攜式游戲控制臺(tái)、mp3播放器、便攜式/個(gè)人多媒體播放器(pmp)、手持電子書(shū)、平板pc、便攜式膝上型pc和全球定位系統(tǒng)(gps)導(dǎo)航儀)、智能tv等。
應(yīng)用(app):可由用戶(hù)直接在計(jì)算機(jī)操作系統(tǒng)(os)或移動(dòng)os上執(zhí)行的軟件,應(yīng)用可包括存儲(chǔ)在終端的存儲(chǔ)單元中的嵌入式應(yīng)用或第三方應(yīng)用。嵌入式應(yīng)用是指預(yù)先安裝在終端中的應(yīng)用。例如,嵌入式應(yīng)用可以是瀏覽器、電子郵件、即時(shí)信使等。第三方應(yīng)用非常多樣化,并且是指如下所述從線(xiàn)上市場(chǎng)下載以安裝在終端上的應(yīng)用,例如,支付應(yīng)用、購(gòu)物應(yīng)用、娛樂(lè)應(yīng)用等。
圖1是應(yīng)用根據(jù)本發(fā)明的實(shí)施例的二維碼生成方法的場(chǎng)景圖。
如圖1所示,服務(wù)器110與服務(wù)器120以有線(xiàn)或無(wú)線(xiàn)方式進(jìn)行連接,應(yīng)理解,在本發(fā)明的各個(gè)實(shí)施例中,無(wú)線(xiàn)連接可以是一對(duì)一的無(wú)線(xiàn)連接,例如,藍(lán)牙、近距離無(wú)線(xiàn)通信(nfc)等,在安全性有保障的場(chǎng)景中,也可以使用無(wú)線(xiàn)局域網(wǎng)(wifi)。
服務(wù)器110是用于生成二維碼的服務(wù)器,例如,服務(wù)器110可以是應(yīng)用服務(wù)器、網(wǎng)站服務(wù)器等。舉例來(lái)說(shuō),服務(wù)器110是支付應(yīng)用服務(wù)器,則應(yīng)用服務(wù)器110可響應(yīng)于用戶(hù)輸入來(lái)生成關(guān)于某一商品的二維碼?;蛘叻?wù)器110是網(wǎng)站服務(wù)器,則可在顯示器上顯示由服務(wù)器110根據(jù)需求生成的各種二維碼。服務(wù)器120是第三方服務(wù)器并且是具有權(quán)威認(rèn)證的第三方服務(wù)器(例如,支付寶服務(wù)器)。
應(yīng)注意,服務(wù)器110和服務(wù)器120均是提供計(jì)算服務(wù)的電子裝置,可以響應(yīng)于服務(wù)器請(qǐng)求并進(jìn)行處理,并且這兩個(gè)服務(wù)器的架構(gòu)與通用計(jì)算機(jī)的架構(gòu)類(lèi)似,在本發(fā)明中,服務(wù)器110和服務(wù)器120提供不同的服務(wù)。
參照?qǐng)D1,服務(wù)器110與服務(wù)器120進(jìn)行交互處理,隨后服務(wù)器110根據(jù)服務(wù)器提供的信息生成二維碼,這將在以下參照?qǐng)D2進(jìn)行詳細(xì)描述,因此省略對(duì)其的描述。
隨后,服務(wù)器110可將二維碼顯示在顯示器上,或者直接利用輸出設(shè)備(例如,打印機(jī)等)進(jìn)行輸出。然后,用戶(hù)可利用移動(dòng)終端中的掃描單元對(duì)二維碼進(jìn)行掃描。
以下將參照?qǐng)D2詳細(xì)說(shuō)明服務(wù)器110與服務(wù)器120之間的交互處理。
如圖2所示,在步驟210,服務(wù)器110向服務(wù)器120發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求可包括用于生成二維碼的信息(以下簡(jiǎn)稱(chēng)二維碼信息),例如,所述二維碼信息可包括收款人賬號(hào)信息,或者所述二維碼信息可包括網(wǎng)址信息。
可選地,服務(wù)器110執(zhí)行步驟210之前預(yù)先向服務(wù)器120提出注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求中可包含與本次注冊(cè)相關(guān)的所有信息,例如,服務(wù)器110可向服務(wù)器120提供自身的各類(lèi)資質(zhì)證明,例如,經(jīng)營(yíng)許可證、商品明細(xì)等。隨后,服務(wù)器120在對(duì)服務(wù)器110提供的信息校驗(yàn)通過(guò)后,完成對(duì)服務(wù)器110的注冊(cè)。并將服務(wù)器110提供的這些資質(zhì)證明存儲(chǔ)在服務(wù)器120的存儲(chǔ)器中??蛇x地,可將這些資質(zhì)證明存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器中,這樣,在需要調(diào)用這些資質(zhì)證明時(shí),通過(guò)遠(yuǎn)程存儲(chǔ)器的地址調(diào)用這些資質(zhì)證明。
如此,在服務(wù)器110向服務(wù)器120發(fā)送二維碼生成請(qǐng)求之后,服務(wù)器120對(duì)服務(wù)器110進(jìn)行驗(yàn)證來(lái)確定服務(wù)器110是否已在服務(wù)器120中注冊(cè),若否,則服務(wù)器120不提供接下來(lái)的服務(wù),并提示服務(wù)器110進(jìn)行注冊(cè),具體來(lái)說(shuō),服務(wù)器120可拒絕服務(wù)器110的二維碼生成請(qǐng)求,并向服務(wù)器110發(fā)出注冊(cè)邀請(qǐng)。若服務(wù)器110已在服務(wù)器120中注冊(cè),則進(jìn)行接下來(lái)的步驟。
通過(guò)以上的注冊(cè)步驟,服務(wù)器120可對(duì)所有通過(guò)驗(yàn)證的裝置提供服務(wù),從而能夠保證由服務(wù)器120協(xié)同生成的二維碼的合法性。并在與服務(wù)器110的商家產(chǎn)生糾紛時(shí)留有證據(jù)。
在步驟220,服務(wù)器120可基于非對(duì)稱(chēng)加密算法對(duì)所述二維碼信息進(jìn)行數(shù)字簽名。具體來(lái)說(shuō),服務(wù)器120可基于非對(duì)稱(chēng)加密算法,利用預(yù)先生成的私鑰(存儲(chǔ)在服務(wù)器120中),對(duì)步驟210中的二維碼生成請(qǐng)求中的二維碼信息進(jìn)行數(shù)字簽名。如此一來(lái),在識(shí)別二維碼的過(guò)程中,若利用公鑰掃描成功,則表明該二維碼為服務(wù)器110利用服務(wù)器120生成的二維碼,若掃描不成功,則表明該二維碼很可能是偽造二維碼或者僅由服務(wù)器110生成未利用服務(wù)器120進(jìn)行處理的二維碼。
應(yīng)注意,服務(wù)器120根據(jù)二維碼信息的不同生成不同的數(shù)字簽名,也就是說(shuō),服務(wù)器120可根據(jù)二維碼信息的不同提供不同的私鑰,隨后利用各個(gè)私鑰對(duì)各個(gè)二維碼信息進(jìn)行數(shù)字簽名。因此,即使是同一網(wǎng)站發(fā)送的關(guān)于不同商品的不同的鏈接信息,也使用不同的私鑰對(duì)不同的鏈接信息進(jìn)行數(shù)字簽名。
以上所述的非對(duì)稱(chēng)加密算法可稱(chēng)為公鑰加密算法,在該算法中,利用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,而利用對(duì)應(yīng)的私鑰才能解密,或者利用私鑰對(duì)數(shù)據(jù)進(jìn)行加密,而利用對(duì)應(yīng)的公鑰進(jìn)行解密。根據(jù)示例性實(shí)施例,非對(duì)稱(chēng)加密算法可包括rsa公鑰加密算法、elgamal加密算法、背包算法、橢圓曲線(xiàn)加密算法(ecc)加密算法。由于本發(fā)明的發(fā)明目的在于保證二維碼真實(shí)有效性,優(yōu)選地,可選擇rsa公鑰加密算法對(duì)生成的交易數(shù)據(jù)進(jìn)行加密。
由于利用非對(duì)稱(chēng)加密算法對(duì)數(shù)據(jù)進(jìn)行數(shù)字簽名是本領(lǐng)域常見(jiàn)的技術(shù)手段,在此將省略對(duì)其的詳細(xì)描述。應(yīng)注意,雖然以上示出了非對(duì)稱(chēng)加密算法的示例,但本領(lǐng)域技術(shù)人員應(yīng)理解,所有能夠生成數(shù)字簽名的非對(duì)稱(chēng)加密算法都可應(yīng)用于此。
隨后,在步驟130,服務(wù)器120將包含數(shù)字簽名的二維碼信息發(fā)送到服務(wù)器110。服務(wù)器110在接收到包含數(shù)字簽名的二維碼信息之后,在步驟140,利用包含數(shù)字簽名的二維碼信息生成二維碼。具體來(lái)說(shuō),可基于二維碼生成算法,利用二維碼信息和數(shù)字簽名生成二維碼。優(yōu)選的,二維碼生成算法包括快速反應(yīng)碼(quickresponsecode,qrcode)算法。
由于利用二維碼生成算法生成二維碼是本領(lǐng)域常見(jiàn)的技術(shù)手段,在此將省略對(duì)其的詳細(xì)描述。本領(lǐng)域技術(shù)人員應(yīng)理解,所有能夠生成二維碼的二維碼生成算法都可應(yīng)用于此。
接下來(lái)將參照?qǐng)D3詳細(xì)描述對(duì)二維碼進(jìn)行驗(yàn)證的示意圖。
如圖3所示,用戶(hù)可利用移動(dòng)終端對(duì)顯示器上顯示的電子二維碼或經(jīng)由輸出設(shè)備輸出的二維碼進(jìn)行驗(yàn)證。
用戶(hù)啟動(dòng)與服務(wù)器120對(duì)應(yīng)的應(yīng)用,例如,用戶(hù)可在移動(dòng)終端中啟動(dòng)與支付寶服務(wù)器對(duì)應(yīng)的支付寶應(yīng)用。隨后,用戶(hù)利用所述應(yīng)用中的掃描單元對(duì)顯示在顯示器上的二維碼或打印出來(lái)的二維碼進(jìn)行掃描。
應(yīng)注意,用戶(hù)在進(jìn)行二維碼識(shí)別過(guò)程中,必須利用與服務(wù)器120對(duì)應(yīng)的應(yīng)用中的掃描單元。這是由于在與服務(wù)器120對(duì)應(yīng)的應(yīng)用包含或可獲取與二維碼對(duì)應(yīng)的公鑰。
可選地,在利用所述應(yīng)用中的掃描單元對(duì)二維碼進(jìn)行掃描之后,可向服務(wù)器120或存儲(chǔ)有公鑰的遠(yuǎn)程存儲(chǔ)器獲取公鑰。隨后,利用所述公鑰對(duì)掃描的二維碼進(jìn)行驗(yàn)證,若驗(yàn)證成功,則可成功識(shí)別出二維碼以進(jìn)行下一步操作。也就是說(shuō),可根據(jù)二維碼識(shí)別結(jié)果,在移動(dòng)終端的顯示界面上顯示與所述二維碼對(duì)應(yīng)的操作界面,例如,如果二維碼的識(shí)別結(jié)果是關(guān)于支付寶的鏈接,則移動(dòng)終端調(diào)用支付寶應(yīng)用,從而在顯示單元上顯示關(guān)于支付寶的操作界面,如果二維碼的識(shí)別結(jié)果是關(guān)于微信的鏈接,則移動(dòng)終端調(diào)用微信應(yīng)用,從而在顯示單元上顯示關(guān)于微信的操作界面。如果二維碼的識(shí)別結(jié)果是關(guān)于網(wǎng)址的鏈接,則移動(dòng)終端調(diào)用瀏覽器應(yīng)用,從而在顯示單元上顯示關(guān)于瀏覽器的操作界面。
若驗(yàn)證不成功,則說(shuō)明二維碼被篡改。此外,還存在這種情況:篡改二維碼的操作者同樣在服務(wù)器120上注冊(cè),并且用于篡改原始二維碼的二維碼同樣是在服務(wù)器120的協(xié)同下生成。例如,商家乙將商家甲張貼在外的二維碼撕掉,張貼他自己的二維碼。在這種情況下,利用與服務(wù)器120對(duì)應(yīng)的應(yīng)用中的掃描單元能夠成功識(shí)別商家乙的二維碼。為了解決這種情況,可記錄以上所述的掃描過(guò)程。這樣可根據(jù)掃描記錄確定篡改二維碼的操作者,并根據(jù)操作者在注冊(cè)階段提供的信息來(lái)確定操作者的身份。
圖4是根據(jù)本發(fā)明的實(shí)施例的由第一服務(wù)器執(zhí)行的二維碼生成方法的流程圖。
在步驟s410,向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息。
在步驟s420,從第二服務(wù)器接收由第二服務(wù)器生成的包含有數(shù)字簽名的二維碼信息。
在步驟s430,利用所述二維碼信息,生成二維碼。
在可替換實(shí)施例中,向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求之前還包括:向第二服務(wù)器發(fā)送注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求包括與本次注冊(cè)相關(guān)的所有信息。
圖5是執(zhí)行如圖4所示的二維碼生成方法的二維碼生成設(shè)備(即,第一服務(wù)器)的框圖。
本領(lǐng)域技術(shù)人員將理解,圖5中示出的二維碼生成設(shè)備的結(jié)構(gòu)并不構(gòu)成對(duì)本發(fā)明的電子裝置的限定,可包括比圖示更多或更少的部件,或組合某些部件,或不同的部件布置。
如圖5所示,二維碼生成設(shè)備可包括發(fā)送單元510、接收單元520和生成單元530。
發(fā)送單元510可向第二服務(wù)器發(fā)送生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息。
接收單元520可從第二服務(wù)器接收由第二服務(wù)器生成的包含有數(shù)字簽名的二維碼信息;
生成單元530可利用所述二維碼信息,生成二維碼。
在可替換實(shí)施例中,發(fā)送單元510在向第一服務(wù)器發(fā)送生成二維碼的請(qǐng)求之前,向第一服務(wù)器發(fā)送注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求包括與本次注冊(cè)相關(guān)的所有信息。
圖6是根據(jù)本發(fā)明的實(shí)施例的由第二服務(wù)器執(zhí)行的二維碼生成方法的流程圖。
在步驟s610,從第一服務(wù)器接收生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息;
在步驟s620,對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;
在步驟s630,將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器。
在可選實(shí)施例中,在從第一服務(wù)器接收生成二維碼的請(qǐng)求之前還包括:從第一服務(wù)器接收注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求包括與本次注冊(cè)相關(guān)的所有信息。并且,在從第一服務(wù)器接收到注冊(cè)請(qǐng)求之后,所述二維碼生成方法還可包括:根據(jù)所述注冊(cè)請(qǐng)求,完成對(duì)第一服務(wù)器的注冊(cè)。
圖7是執(zhí)行如圖6所示的二維碼生成方法的二維碼生成設(shè)備(即,第二服務(wù)器)的框圖。
本領(lǐng)域技術(shù)人員將理解,圖7中示出的二維碼生成設(shè)備的結(jié)構(gòu)并不構(gòu)成對(duì)本發(fā)明的電子裝置的限定,可包括比圖示更多或更少的部件,或組合某些部件,或不同的部件布置。
所述二維碼生成設(shè)備可包括接收單元710、處理單元720和發(fā)送單元730。
接收單元710從第一服務(wù)器接收生成二維碼的請(qǐng)求,所述請(qǐng)求包括用于生成二維碼的信息。在可替換實(shí)施例中,接收單元還從第一服務(wù)器接收注冊(cè)請(qǐng)求,所述注冊(cè)請(qǐng)求包括與本次注冊(cè)相關(guān)的所有信息。
在可替換實(shí)施例中,所述二維碼生成設(shè)備可包括注冊(cè)單元,所述注冊(cè)單元根據(jù)所述注冊(cè)請(qǐng)求,完成對(duì)第一服務(wù)器的注冊(cè)。
處理單元720對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名??蛇x地,處理單元720可基于非對(duì)稱(chēng)加密算法,利用私鑰對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名。
發(fā)送單元730將包含有數(shù)字簽名的二維碼信息發(fā)送到第一服務(wù)器。
在可替換實(shí)施例中,所述二維碼生成設(shè)備還包括確定單元,所述確定單元確定第一服務(wù)器是否在第二服務(wù)器中注冊(cè):若是,則根據(jù)接收到的生成二維碼的請(qǐng)求對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名;若否,則不執(zhí)行對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名并向第一服務(wù)器發(fā)送注冊(cè)邀請(qǐng)。
在可替換的實(shí)施例中,根據(jù)生成二維碼的信息的不同,在對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名的步驟中使用的私鑰不同。
在另一示例性實(shí)施例中,可提供一種二維碼生成系統(tǒng),所述系統(tǒng)包括如圖5中的二維碼生成設(shè)備和如圖7所述的二維碼生成設(shè)備。
如上所述,根據(jù)本發(fā)明的實(shí)施例提供的二維碼生成方法及其設(shè)備通過(guò)一服務(wù)器與另一服務(wù)器之間協(xié)同作用產(chǎn)生二維碼,增強(qiáng)了二維碼的安全性和有效性,并且方便在二維碼識(shí)別過(guò)程中識(shí)別出二維碼是否被篡改。
圖8是根據(jù)本發(fā)明的實(shí)施例的二維碼識(shí)別方法的流程圖。
在步驟s810,啟動(dòng)與對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名的服務(wù)器對(duì)應(yīng)的應(yīng)用。
在步驟s820,利用所述應(yīng)用中的掃描單元掃描所述二維碼。
在步驟s830,利用公鑰對(duì)掃描的二維碼進(jìn)行驗(yàn)證。
在步驟s840,若驗(yàn)證成功,則識(shí)別出與掃描的二維碼對(duì)應(yīng)的信息。
在可替換實(shí)施例中,所述公鑰是從所述服務(wù)器或遠(yuǎn)程存儲(chǔ)裝置獲得的。此外,所述方法還可包括存儲(chǔ)所述驗(yàn)證步驟中相關(guān)的信息。
圖9是根據(jù)本發(fā)明的實(shí)施例的執(zhí)行如圖8所述的二維碼識(shí)別方法的二維碼識(shí)別設(shè)備的框圖。
本領(lǐng)域技術(shù)人員將理解,圖9中示出的二維碼識(shí)別設(shè)備的結(jié)構(gòu)并不構(gòu)成對(duì)本發(fā)明的電子裝置的限定,可包括比圖示更多或更少的部件,或組合某些部件,或不同的部件布置。
所述二維碼識(shí)別設(shè)備可包括啟動(dòng)單元910、掃描單元920、驗(yàn)證單元930和識(shí)別單元940。
啟動(dòng)單元910可啟動(dòng)與對(duì)用于生成二維碼的信息進(jìn)行數(shù)字簽名的服務(wù)器對(duì)應(yīng)的應(yīng)用。
掃描單元920可利用所述應(yīng)用中的掃描單元掃描所述二維碼;
驗(yàn)證單元930可利用公鑰對(duì)掃描的二維碼進(jìn)行驗(yàn)證;
識(shí)別單元940可在驗(yàn)證單元驗(yàn)證成功的情況下,識(shí)別出與掃描的二維碼對(duì)應(yīng)的信息。
在可替換實(shí)施例中,所述公鑰是從所述服務(wù)器或遠(yuǎn)程存儲(chǔ)裝置獲得的。
在可替換實(shí)施例中,所述二維碼識(shí)別設(shè)備還包括存儲(chǔ)單元,所述存儲(chǔ)單元存儲(chǔ)所述驗(yàn)證步驟中相關(guān)的信息。
圖10是執(zhí)行根據(jù)本發(fā)明的實(shí)施例的二維碼生成方法或二維碼識(shí)別方法的電子設(shè)備的框圖。參考圖10,在硬件層面,該電子設(shè)備包括處理器、內(nèi)部總線(xiàn)、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成的網(wǎng)頁(yè)截圖裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。
根據(jù)本發(fā)明的實(shí)施例提供的二維碼識(shí)別方法及其設(shè)備通過(guò)特定應(yīng)用利用公鑰識(shí)別出與二維碼對(duì)應(yīng)地信息,增加了二維碼識(shí)別過(guò)程中的真?zhèn)闻卸?,防止二維碼被篡改。
在20世紀(jì)90年代,對(duì)于一個(gè)技術(shù)的改進(jìn)可以很明顯地區(qū)分是硬件上的改進(jìn)(例如,對(duì)二極管、晶體管、開(kāi)關(guān)等電路結(jié)構(gòu)的改進(jìn))還是軟件上的改進(jìn)(對(duì)于方法流程的改進(jìn))。然而,隨著技術(shù)的發(fā)展,當(dāng)今的很多方法流程的改進(jìn)已經(jīng)可以視為硬件電路結(jié)構(gòu)的直接改進(jìn)。設(shè)計(jì)人員幾乎都通過(guò)將改進(jìn)的方法流程編程到硬件電路中來(lái)得到相應(yīng)的硬件電路結(jié)構(gòu)。因此,不能說(shuō)一個(gè)方法流程的改進(jìn)就不能用硬件實(shí)體模塊來(lái)實(shí)現(xiàn)。例如,可編程邏輯器件(programmablelogicdevice,pld)(例如現(xiàn)場(chǎng)可編程門(mén)陣列(fieldprogrammablegatearray,fpga))就是這樣一種集成電路,其邏輯功能由用戶(hù)對(duì)器件編程來(lái)確定。由設(shè)計(jì)人員自行編程來(lái)把一個(gè)數(shù)字系統(tǒng)“集成”在一片pld上,而不需要請(qǐng)芯片制造廠(chǎng)商來(lái)設(shè)計(jì)和制作專(zhuān)用的集成電路芯片。而且,如今,取代手工地制作集成電路芯片,這種編程也多半改用“邏輯編譯器(logiccompiler)”軟件來(lái)實(shí)現(xiàn),它與程序開(kāi)發(fā)撰寫(xiě)時(shí)所用的軟件編譯器相類(lèi)似,而要編譯之前的原始代碼也得用特定的編程語(yǔ)言來(lái)撰寫(xiě),此稱(chēng)之為硬件描述語(yǔ)言(hardwaredescriptionlanguage,hdl),而hdl也并非僅有一種,而是有許多種,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)與verilog。本領(lǐng)域技術(shù)人員也應(yīng)該清楚,只需要將方法流程用上述幾種硬件描述語(yǔ)言稍作邏輯編程并編程到集成電路中,就可以很容易得到實(shí)現(xiàn)該邏輯方法流程的硬件電路。
控制器可以按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門(mén)、開(kāi)關(guān)、專(zhuān)用集成電路(applicationspecificintegratedcircuit,asic)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過(guò)將方法步驟進(jìn)行邏輯編程來(lái)使得控制器以邏輯門(mén)、開(kāi)關(guān)、專(zhuān)用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來(lái)實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
上述實(shí)施例闡明的系統(tǒng)、裝置、模塊或單元,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。一種典型的實(shí)現(xiàn)設(shè)備為計(jì)算機(jī)。具體的,計(jì)算機(jī)例如可以為個(gè)人計(jì)算機(jī)、膝上型計(jì)算機(jī)、蜂窩電話(huà)、相機(jī)電話(huà)、智能電話(huà)、個(gè)人數(shù)字助理、媒體播放器、導(dǎo)航設(shè)備、電子郵件設(shè)備、游戲控制臺(tái)、平板計(jì)算機(jī)、可穿戴設(shè)備或者這些設(shè)備中的任何設(shè)備的組合。
為了描述的方便,描述以上裝置時(shí)以功能分為各種單元分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各單元的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性?xún)?nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類(lèi)型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤(pán)只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(pán)(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤(pán)存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪(fǎng)問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。
本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。
以上所述僅為本申請(qǐng)的實(shí)施例而已,并不用于限制本申請(qǐng)。對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō),本申請(qǐng)可以有各種更改和變化。凡在本申請(qǐng)的精神和原理之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)的權(quán)利要求范圍之內(nèi)。