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