倪瑩瑩,王曉峰,丁小未
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
基于Unity 3D的產(chǎn)品秘鑰二維碼實(shí)現(xiàn)
倪瑩瑩,王曉峰,丁小未
(上海海事大學(xué)信息工程學(xué)院,上海 201306)
隨著計(jì)算機(jī)技術(shù)的發(fā)展以及移動(dòng)互聯(lián)網(wǎng)的迅速崛起,二維碼作為自動(dòng)識(shí)別技術(shù)廣泛應(yīng)用于各個(gè)領(lǐng)域。針對(duì)不少軟件產(chǎn)品通過激活秘鑰維護(hù)版權(quán)的問題,提出利用Unity 3D作為客戶端,探索用二維碼作為激活秘鑰激活產(chǎn)品的新方法。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)激活方式相比,二維碼作為激活秘鑰更方便快捷,具有一定的實(shí)用價(jià)值。
二維碼;Unity 3D;移動(dòng)互聯(lián)網(wǎng);產(chǎn)品秘鑰
在移動(dòng)互聯(lián)網(wǎng)的推動(dòng)中,二維碼以其輸入速度快、準(zhǔn)確度高、成本低、可靠性強(qiáng)等優(yōu)點(diǎn)作為自動(dòng)識(shí)別技術(shù)已經(jīng)廣泛應(yīng)用于各領(lǐng)域中,在日常生活中也是隨處可見,如:App下載、名片交流、書籍存儲(chǔ)、Wi-Fi登錄等。
二維碼最早發(fā)明于日本,它產(chǎn)生的前提條件是一維碼滿足不了實(shí)際應(yīng)用的需求,一維碼一般是對(duì)物品的標(biāo)識(shí),無法描述產(chǎn)品信息,而二維碼則能在橫向和縱向兩個(gè)方向同時(shí)表達(dá)信息,因此能在很小的面積表達(dá)大量信息,即便是遠(yuǎn)離數(shù)據(jù)庫和不聯(lián)網(wǎng)的地方也能實(shí)現(xiàn)信息的攜帶。二維碼的出現(xiàn)滿足了現(xiàn)代科技發(fā)展對(duì)有限幾何空間內(nèi)表達(dá)更多信息的需求。二維碼是用特定的幾何圖形按在二維方向上分布的黑白的記錄符號(hào)的信息,在代碼編制上利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”,“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來標(biāo)識(shí)文字?jǐn)?shù)值信息,通過輸入設(shè)備自動(dòng)識(shí)別以實(shí)現(xiàn)信息的自動(dòng)處理[1-2]。
國(guó)內(nèi)外對(duì)二維碼的研究分別始于20世紀(jì)80年代和21世紀(jì),雖然與國(guó)外相比起步滯后了許多,但是目前我國(guó)二維碼也已經(jīng)越來越成熟,逐漸形成了自己的產(chǎn)業(yè)鏈。目前一般的PC端軟件授權(quán)都是通過購(gòu)買激活秘鑰實(shí)現(xiàn)的,然后再通過激活頁面輸入秘鑰進(jìn)行激活。但移動(dòng)端存在輸入不便的問題,針對(duì)這一問題,探索利用包含秘鑰的二維碼,通過手機(jī)攝像頭掃描秘鑰二維碼進(jìn)行激活,實(shí)現(xiàn)傳統(tǒng)激活方式上的創(chuàng)新和突破。
本文主要通過二維碼生成庫ZXing隨機(jī)生成二維碼,并用Unity 3D作為客戶端引擎,研究一套完整的二維碼秘鑰激活功能的客戶端和服務(wù)器端的開發(fā)展示,從而驗(yàn)證二維碼激活秘鑰方案的可行性。
1.1 二維碼秘鑰激活流程圖
產(chǎn)品秘鑰是產(chǎn)品的授權(quán)證明,是用戶使用產(chǎn)品的使用權(quán)限的認(rèn)證,產(chǎn)品秘鑰是根據(jù)一定的算法產(chǎn)生一些隨機(jī)的字符串,當(dāng)用戶輸入秘鑰時(shí)進(jìn)行校驗(yàn),并判斷是否給與產(chǎn)品授權(quán)文件。圍繞產(chǎn)品秘鑰的認(rèn)證流程,對(duì)二維碼秘鑰激活設(shè)計(jì)如圖1所示的流程圖。
當(dāng)用戶打開產(chǎn)品時(shí),首先需要判斷是否有授權(quán)文件,如果有則意味著擁有產(chǎn)品使用權(quán),允許進(jìn)入應(yīng)用;如果沒有,需要彈出激活頁面,當(dāng)用戶購(gòu)買了秘鑰二維碼,掃描后服務(wù)器校驗(yàn)通過,才能給與授權(quán)文件擁有產(chǎn)品的使用權(quán)。
1.2 二維碼秘鑰激活的整體架構(gòu)圖
針對(duì)以上流程圖,對(duì)二維碼秘鑰激活設(shè)計(jì)具體的功能實(shí)現(xiàn):其中客戶端主要功能有二維碼掃描、二維碼激活碼檢驗(yàn)和授權(quán)文件本地存儲(chǔ),服務(wù)器端包括二維碼生成服務(wù)器、數(shù)據(jù)庫服務(wù)器、激活碼檢驗(yàn)[5-6]服務(wù)器。整體功能框架如圖2所示。
圖1 二維碼秘鑰激活流程圖
圖2 二維碼秘鑰整體架構(gòu)圖
2.1 系統(tǒng)實(shí)現(xiàn)的整體效果圖根據(jù)上述思路,設(shè)計(jì)了模擬二維碼秘鑰激活整體的實(shí)現(xiàn)效果圖如圖3所示,當(dāng)點(diǎn)擊數(shù)據(jù)庫生成二維碼秘鑰按鈕時(shí):數(shù)據(jù)庫會(huì)以GUID的方式生成一個(gè)隨機(jī)的字符串,當(dāng)點(diǎn)擊創(chuàng)建一個(gè)秘鑰二維碼,會(huì)生成一個(gè)包含剛剛字符串信息的二維碼,點(diǎn)擊顯示可用數(shù)據(jù)的時(shí)候會(huì)出現(xiàn)一系列可用的秘鑰。二維碼秘鑰的生成、識(shí)別以及激活的具體實(shí)現(xiàn),將在接下來三小節(jié)進(jìn)行詳細(xì)的代碼解析和運(yùn)行結(jié)果展示。
2.2 二維碼生成
(1)二維碼生成代碼實(shí)現(xiàn)
ZXing是一個(gè)開源的實(shí)現(xiàn)多種格式的1D/2D條碼的圖像處理庫,提供了二維碼的生成和解析方法,使用ZXing生成的二維碼可以在二維碼中設(shè)置顏色和添加Logo圖片,可以滿足人們對(duì)二維碼更加復(fù)雜的需求[3]。
圖3 二維碼秘鑰激活實(shí)現(xiàn)效果圖
下面是用C#語言編寫的通過ZXing庫實(shí)現(xiàn)的用于生成二維碼的程序,該段程序可以通過修改部分代碼實(shí)現(xiàn)生成彩色二維碼的功能。
(2)二維碼生成界面圖
點(diǎn)擊創(chuàng)建二維碼,服務(wù)器會(huì)從數(shù)據(jù)庫中選擇一條秘鑰字符串然后通過ZXing庫來生成一個(gè)二維碼圖片顯示到頁面上。具體運(yùn)行效果如圖4所示:
圖4 二維碼生成界面圖
2.3 二維碼掃描識(shí)別
(1)二維碼掃描識(shí)別代碼實(shí)現(xiàn)
在Unity 3D客戶端中打開攝像頭掃描識(shí)別的二維碼[4],將二維碼圖片流發(fā)送給ZXing條碼庫識(shí)別,如果識(shí)別成功會(huì)返回識(shí)別出來的二維碼內(nèi)容,反之則返回錯(cuò)誤信息。該段代碼的詳細(xì)實(shí)現(xiàn)如下:
(2)二維碼掃描實(shí)驗(yàn)結(jié)果圖
運(yùn)行上述程序,生成如圖5所示的界面,將二維碼放入銀白色框內(nèi),即可實(shí)現(xiàn)二維碼的掃描完成激活認(rèn)證。
2.4 二維碼激活認(rèn)證
將客戶端識(shí)別出來的二維碼內(nèi)容通過HTTP請(qǐng)求發(fā)送給服務(wù)器校驗(yàn),服務(wù)器接收到客戶端發(fā)送過來的二維碼秘鑰后需要到數(shù)據(jù)庫中驗(yàn)證,如果數(shù)據(jù)庫中存在該秘鑰,并且該秘鑰尚未失效則服務(wù)器認(rèn)為秘鑰合法返回成功激活的標(biāo)記,如果激活失敗返回失敗標(biāo)記,客戶端接收到服務(wù)器返回信息之后做出相應(yīng)的邏輯處理,如果激活成功則在本地生成授權(quán)文件,反之彈框提示激活失敗。具體服務(wù)器與客戶端的代碼實(shí)現(xiàn)如下:
圖5 二維碼掃描界面圖
運(yùn)行二維碼激活結(jié)果如圖6所示。
圖6 二維碼秘鑰激活圖
本實(shí)驗(yàn)通過Unity3D平臺(tái)完成了對(duì)秘鑰的二維碼實(shí)現(xiàn)。由實(shí)驗(yàn)結(jié)果可知,該模塊實(shí)現(xiàn)了二維碼生成、掃描以及激活的全部功能,基本實(shí)現(xiàn)了秘鑰激活的功能,采用掃描二維碼激活與傳統(tǒng)的輸入框輸入秘鑰更加地快捷方便,避免了移動(dòng)平臺(tái)輸入不便的問題,為產(chǎn)品秘鑰商業(yè)化二維碼的應(yīng)用提供了技術(shù)支持。此外,本文所設(shè)計(jì)的功能可用于解決我們開發(fā)的應(yīng)用商業(yè)授權(quán)的問題,具有一定的商業(yè)化意義。
[1]王道平,張大川.現(xiàn)代物流信息技術(shù)[D].北京:北京大學(xué)出版社,2010,43-48.
[2]周曉偉.二維條碼識(shí)別技術(shù)研究[D].上海:上海交通大學(xué),2007,87-99.
[3]程裕強(qiáng),劉愛民,周國(guó)軍.二維碼生成算法研究[J].玉林師范學(xué)院學(xué)報(bào),2014,35(5),118-122.
[4]林邦杰.二維碼識(shí)別系統(tǒng)在手機(jī)端的研究與實(shí)現(xiàn)[J].化學(xué)工程與裝備,2014,2(2),164-166.
[5]張典華,陳一民.基于Unity 3D的多平臺(tái)虛擬校園設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2014,24(2),164-166.
[6]Tkachenko,luliia,Puech,William.Two-Level QR Code for Private Message Sharing and Document Authentication[J].IEEE Transactions on Information Forensics and Security,2016,10(11):571-583.
Two-Dimensional Code;Unity 3D;Mobile Internet;Product Secret Key
Implement of Product Secret Key Two-Dimensional Code Based on Unity 3D
NI Ying-ying,WANG Xiao-feng,DING Xiao-wei
(College of Information Engineering,Shanghai Maritime University,Shanghai 201306)
With the development of computer technology and the rapid rise of the mobile Internet,two-dimensional code,as an automatic identification technology,is widely applied in various fields.For many software products with their own activate the secret key to maintain the copyright,puts forward to use Unity 3D to perform the client implementation,explores a new method two-dimensional code to realize the activation of the secret key.The experimental results show that,compared with the traditional activation methods,two-dimensional code is more convenient and quick,to some extent,it is of certain practical value.
1007-1423(2016)19-0035-05
10.3969/j.issn.1007-1423.2016.19.010
倪瑩瑩(1991-),女,江蘇鹽城人,碩士,研究方向?yàn)楹竭\(yùn)異構(gòu)數(shù)據(jù)共享、圖像識(shí)別
王曉峰(1958-),男,遼寧燈塔人,教授,博導(dǎo),博士,研究方向?yàn)槿斯ぶ悄?、?shù)據(jù)挖掘與知識(shí)發(fā)現(xiàn)、航運(yùn)信息化
丁小未(1991-),男,江蘇南通人,本科,從事領(lǐng)域?yàn)閁nity3D游戲開發(fā)
2016-04-27
2016-06-29