盛健等
摘 要:文章基于Visual C++的開(kāi)發(fā)平臺(tái),使用MFC基本框架、SQL Server數(shù)據(jù)庫(kù)以及Arnold置亂等開(kāi)發(fā)環(huán)境及技術(shù),構(gòu)建了新型彩碼的信息生成、讀取和加密系統(tǒng),實(shí)現(xiàn)了信息讀入、彩碼生成、彩碼識(shí)別、彩碼加密等功能。
關(guān)鍵詞:彩碼;MFC;彩碼應(yīng)用系統(tǒng)
引言
彩碼是以在RGB中四種相關(guān)性較大的單一顏色:紅、綠、藍(lán)和黑來(lái)表述信息的,彩碼圖形是由一個(gè)n×n的矩陣圖構(gòu)成,n×n個(gè)矩陣單位各自由上述四色中的單一顏色填充,矩陣的外框通過(guò)黑色線條封閉,并在外框黑邊外留白。彩碼色塊是由定位模塊、信息模塊以及計(jì)數(shù)模塊構(gòu)成,它們分別起到定位、信息儲(chǔ)存以及記錄有效信息長(zhǎng)度的作用。
文章基于Visual C++的開(kāi)發(fā)平臺(tái)構(gòu)建的新型彩碼應(yīng)用系統(tǒng),可以實(shí)現(xiàn)對(duì)字符串信息的讀取,生成相應(yīng)的彩碼,以及對(duì)生成的彩碼實(shí)現(xiàn)加密的功能。同時(shí),該系統(tǒng)還可以實(shí)現(xiàn)對(duì)由該系統(tǒng)生成的彩碼圖形進(jìn)行解密還原,得到該彩碼圖形所包含的字符串信息。該新型彩碼應(yīng)用系統(tǒng),可為基于彩碼的商品溯源防偽等應(yīng)用,提供安全可靠的保障,降低商品溯源防偽應(yīng)用成本[1],推動(dòng)彩碼的進(jìn)一步發(fā)展和應(yīng)用。
1 彩碼應(yīng)用系統(tǒng)設(shè)計(jì)
該彩碼系統(tǒng)由信息讀入系統(tǒng)、彩碼信息處理系統(tǒng)以及數(shù)據(jù)庫(kù)服務(wù)器等部分構(gòu)成。其中,彩碼信息處理系統(tǒng)由彩碼信息生成系統(tǒng)、彩碼信息讀取系統(tǒng)以及彩碼信息加密系統(tǒng)構(gòu)成。系統(tǒng)基本框架的構(gòu)建、應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)服務(wù)器的連接,通過(guò)基于面向?qū)ο笏枷氲腣isual C++語(yǔ)言中的MFC框架來(lái)實(shí)現(xiàn),以提高系統(tǒng)的開(kāi)發(fā)效率。選用作為底層的數(shù)據(jù)庫(kù),通過(guò)已確立的表結(jié)構(gòu),以及執(zhí)行相關(guān)SQL來(lái)創(chuàng)建相關(guān)表。通過(guò)創(chuàng)建用戶名、創(chuàng)建表空間以及創(chuàng)建相關(guān)表,來(lái)達(dá)到數(shù)據(jù)存儲(chǔ)的目的[2]。該系統(tǒng)生成彩碼時(shí),通過(guò)IDC_EDIT編輯框控件輸入需要生成彩碼的文字,并在程序中更新和讀取控件的內(nèi)容。即通過(guò)設(shè)置相關(guān)變量?jī)?chǔ)存IDC_EDIT編輯框中的內(nèi)容。該系統(tǒng)運(yùn)用MFC的Ado控件與數(shù)據(jù)庫(kù)服務(wù)器建立連接,并將前面的相關(guān)變量的字符串置于數(shù)據(jù)庫(kù)中查詢(xún)并返回相關(guān)字符ID,即字符在數(shù)據(jù)庫(kù)中的存儲(chǔ)序號(hào),將序號(hào)轉(zhuǎn)換成四進(jìn)制,并根據(jù)四進(jìn)制數(shù)與彩碼顏色的對(duì)應(yīng)關(guān)系得到相關(guān)彩碼色塊,顯示到程序界面的picture控件中。讀取時(shí),則是將彩碼信息提取并置于數(shù)據(jù)庫(kù)中查詢(xún)并返回相關(guān)字符串,通過(guò)消息對(duì)話框(MessageBox)顯示。彩碼信息的加密則是通過(guò)Arnold置亂技術(shù)實(shí)現(xiàn)的,該技術(shù)可將原先的生成的彩碼信息模塊色塊根據(jù)Arnold變換公式進(jìn)行變換重組,而后在彩碼讀取過(guò)程中可通過(guò)Arnold置亂技術(shù)自身具有的周期性進(jìn)行還原,如圖1所示。
2 彩碼在信息生成、讀取和加密系統(tǒng)中的算法設(shè)計(jì)
我們根據(jù)該系統(tǒng)面向?qū)ο笳Z(yǔ)言的特點(diǎn),以及Visual C++的MFC開(kāi)發(fā)平臺(tái)的相關(guān)特性,設(shè)計(jì)了較為高效的彩碼生成、讀取和加密的相關(guān)算法。
生成彩碼,首先在彩碼圖形的定位模塊中生成彩碼圖形的定位色塊,其次將讀入的字符串信息在數(shù)據(jù)庫(kù)服務(wù)器中通過(guò)sql語(yǔ)句查找,得到字符存儲(chǔ)的ID值,即查找字符在數(shù)據(jù)庫(kù)中十進(jìn)制的存儲(chǔ)序號(hào)。得到ID值后將其轉(zhuǎn)換成對(duì)應(yīng)的四進(jìn)制,根據(jù)顏色與色塊之間的對(duì)應(yīng)關(guān)系,將四進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)顏色,并填入對(duì)應(yīng)的信息模塊色塊中。同時(shí)對(duì)讀入字符串的有效長(zhǎng)度進(jìn)行計(jì)數(shù),轉(zhuǎn)換成四進(jìn)制數(shù),并將四進(jìn)制數(shù)轉(zhuǎn)換成對(duì)應(yīng)的顏色填入計(jì)數(shù)模塊色塊中,用于讀取彩碼信息時(shí)對(duì)信息模塊中有效長(zhǎng)度的提取。
讀取彩碼的過(guò)程是通過(guò)定位模塊對(duì)彩碼圖形進(jìn)行定位后,提取計(jì)數(shù)模塊中的彩碼色塊包含的信息模塊色塊中的字符串的有效長(zhǎng)度;從而提取出信息模塊色塊中的相應(yīng)長(zhǎng)度的信息。根據(jù)顏色與色塊之間的對(duì)應(yīng)關(guān)系,將相關(guān)顏色轉(zhuǎn)換成對(duì)應(yīng)的四進(jìn)制數(shù),進(jìn)而轉(zhuǎn)換成十進(jìn)制數(shù),通過(guò)sql語(yǔ)句在數(shù)據(jù)庫(kù)中進(jìn)行查找,返回對(duì)應(yīng)字符,從而得到彩碼信息模塊中儲(chǔ)存的字符串。
彩碼信息的加密是通過(guò)Arnold置亂技術(shù)實(shí)現(xiàn)的。本系統(tǒng)以彩碼信息模塊中的單個(gè)色塊作為Arnold置亂的基本單元進(jìn)行置亂,可產(chǎn)生原彩碼圖形置亂后的彩碼圖形,實(shí)現(xiàn)對(duì)有效信息的置亂存儲(chǔ),從而達(dá)到對(duì)有效信息的加密的效果。另一方面,Arnold置亂技術(shù)具有周期性,當(dāng)一幅圖像進(jìn)行Arnold變換多次后便可得到原圖像[3]。因此,在對(duì)彩碼讀取的過(guò)程中即可通過(guò)變換的周期性對(duì)生成的彩碼圖形進(jìn)行還原,得到之前有效的彩碼圖形進(jìn)行處理。
3 結(jié)束語(yǔ)
我們基于Visual C++的MFC開(kāi)發(fā)平臺(tái),采用MFC基礎(chǔ)框架和sql server數(shù)據(jù)庫(kù)等開(kāi)發(fā)技術(shù),完成了新型彩碼對(duì)信息的讀取,生成和加密系統(tǒng)的構(gòu)建。該系統(tǒng)是解決眾多彩碼應(yīng)用的基礎(chǔ)系統(tǒng),解決了彩碼應(yīng)用系統(tǒng)中的讀取和生成難題。尤為突出的是,該系統(tǒng)利用Arnold置亂技術(shù)提高了新型彩碼的安全性,為新型彩碼在商品防偽與溯源等應(yīng)用方面提供了基礎(chǔ)性處理方法。
參考文獻(xiàn)
[1]孫衛(wèi)琴.精通struts[M].北京:電子工業(yè)出版社,2004:50-70.
[2]張毅群,劉琦,張鵬,等.基于新型彩碼的商品溯源及防偽應(yīng)用研究[J].科技傳播,2014(22):188-188,229.
[3]劉麗麗.三維彩碼圖像水印算法的設(shè)計(jì)與實(shí)現(xiàn)[D].蘇州大學(xué),2012.
作者簡(jiǎn)介:盛健,杭州電子科技大學(xué)計(jì)算機(jī)學(xué)院本科在讀,專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)。