盛健等

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