基于Hash函數(shù)的條碼生成系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]基于Hash函數(shù)的條碼生成系統(tǒng)是編譯碼領(lǐng)域(G09C)的一種條碼產(chǎn)生技術(shù),主要用于產(chǎn)生商品所需的條碼,實(shí)現(xiàn)對商品的物流管理、市場監(jiān)控與統(tǒng)計(jì)決策。
【背景技術(shù)】
[0002]條碼是當(dāng)前廣泛應(yīng)用于個(gè)體標(biāo)識(shí)的編碼制式,分為一維碼和二維碼,各有優(yōu)缺點(diǎn)。
[0003](I) 二維碼的數(shù)據(jù)容量更大,但由于數(shù)據(jù)量變大,對于信息存儲(chǔ)的機(jī)器要求變高;
[0004](2)相比于二維碼,一維碼更容易被辨識(shí);
[0005](3)傳統(tǒng)的商品統(tǒng)一標(biāo)識(shí)目前是用一維碼來標(biāo)識(shí),而隨著網(wǎng)絡(luò)發(fā)展而興起的身份驗(yàn)證標(biāo)識(shí)則大部分由二維碼來標(biāo)識(shí)。
[0006]實(shí)名制火車票上的二維碼泄露用戶信息引起了大家的廣泛關(guān)注。隨著智能手機(jī)的普及,二維碼應(yīng)用越來越廣泛,其安全性問題也口益突出。二維碼技術(shù)成為手機(jī)病毒、釣魚網(wǎng)站傳播的新渠道。手機(jī)病毒偽裝成手機(jī)聊天軟件,并通過二維碼提供下載鏈接,用戶一旦掃描這個(gè)二維碼,就會(huì)自動(dòng)向手機(jī)發(fā)送短信,騙取手機(jī)話費(fèi)等。
[0007]普通條碼特指一維碼。一維條碼技術(shù)是一種快速準(zhǔn)確進(jìn)行數(shù)據(jù)采集和自動(dòng)識(shí)別的技術(shù),其應(yīng)用能提高信息錄入的速度,減少差錯(cuò)率。目前使用很廣泛的一維條碼是EAN-13碼。條碼技術(shù)是實(shí)現(xiàn)物流管理的重要手段,但EAN-13碼容易被偽造盜版?;贖ash函數(shù)的條碼生成系統(tǒng)通過條碼實(shí)現(xiàn)低成本物流管理,通過Hash函數(shù)實(shí)現(xiàn)防偽認(rèn)證功能。
【發(fā)明內(nèi)容】
[0008]【發(fā)明目的】
[0009]為了方便生產(chǎn)商對產(chǎn)品的低成本管理,并提供商品的防偽認(rèn)證功能,基于Hash函數(shù)的條碼生成系統(tǒng)通過產(chǎn)生企業(yè)自己的商品條碼,提高生產(chǎn)商對產(chǎn)品的物流管理效率,從而實(shí)現(xiàn)統(tǒng)計(jì)決策的功能,為生產(chǎn)商掌控市場用戶行情、制定市場營銷策略提供參考借鑒。
[0010]【技術(shù)方案】
[0011]常用商品條碼EAN-13碼由13位十進(jìn)制數(shù)組成,其中前12位表示國家代碼、廠商代碼和商品代碼,后I位為校驗(yàn)碼。為了方便普通讀碼器識(shí)讀,基于Hash函數(shù)的條碼生成系統(tǒng)也采用EAN-13碼,但自行定義各碼位代表的含義,采取6+6+1的方式。條碼前6位CT6表不商品部分生產(chǎn)時(shí)間批號。
[0012]CT6 = (CT >> 13)
[0013]其中CT為當(dāng)前計(jì)算機(jī)時(shí)鐘,是一個(gè)32bit的長整數(shù);t > > i表示t右移i_bit。也就是說,條碼前6位批號CT6是截取當(dāng)前計(jì)算機(jī)時(shí)鐘CT的高19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。
[0014]條碼中間6位是由Hash函數(shù)產(chǎn)生的認(rèn)證碼AC。
[0015]AC = MSB19 [Hash (CT | | Ki)]
[0016]其中,Ki是廠家為該商品設(shè)置的密碼,8個(gè)字符以上;I I表示級聯(lián)運(yùn)算WSBiQ1)表示截取h的前1-bit。也就是說,條碼中間6位認(rèn)證碼AC是截取Hash函數(shù)輸出的前19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。考慮困家密碼政策,Hash函數(shù)直接采用現(xiàn)有的算法。本系統(tǒng)選擇了3種Hash函數(shù)來實(shí)現(xiàn):SHA-1、SHA-512和SPONGENT,分別應(yīng)用于32位平臺(tái)、64位平臺(tái)和資源受限環(huán)境。
[0017]條碼最后I位校驗(yàn)碼的產(chǎn)生方式與普通EAN-13碼完全相同。
[0018]【有益效果】
[0019](I)方便管理,節(jié)省成本。
[0020]EAN-13碼成本低廉,對應(yīng)用環(huán)境要求不高,識(shí)讀快速準(zhǔn)確,能提高生產(chǎn)商對產(chǎn)品的物流管理效率。
[0021](2)兼容性。
[0022]常用商品條碼EAN-13碼由13位十進(jìn)制數(shù)組成,其中前12位表示國家代碼、廠商代碼和商品代碼,后I位為校驗(yàn)碼。本系統(tǒng)也采用EAN13碼,但自行定義各碼位代表的含義,米取6+6+1的方式。條碼前6位表不商品生產(chǎn)時(shí)間批號部分信息,中間6位是由Hash函數(shù)產(chǎn)生的認(rèn)證碼,最后I位校驗(yàn)碼的產(chǎn)生方式與普通EAN-13碼完全相同。這樣方便普通讀碼器識(shí)讀,兼容性強(qiáng)。
[0023](3)防偽與安全性。
[0024]對于常用商品條碼EAN-13碼,他人能輕易偽造廠家的商品條碼。本條碼中間6位是由密碼等信息經(jīng)過單向Hash函數(shù)處理后產(chǎn)生的認(rèn)證碼。沒有密碼,他人無法偽造廠家的商品條碼。Hash函數(shù)的單向性保證密碼不會(huì)被破解。另外,通過為條碼設(shè)置有效期防止他人復(fù)制。
【附圖說明】
[0025]圖1基于Hash函數(shù)的條碼生成系統(tǒng)流程設(shè)計(jì)圖
[0026]說明:產(chǎn)生條碼時(shí),用戶輸入商品密碼或者導(dǎo)入商品密碼文件,同時(shí)選擇Hash函數(shù),然后點(diǎn)擊生成按鈕;系統(tǒng)把當(dāng)前計(jì)算機(jī)時(shí)鐘與商品密碼級聯(lián)起來,用Hash函數(shù)進(jìn)行變換,產(chǎn)生一個(gè)條形碼;用戶選擇條碼保存路徑把條碼圖片保存到本地。
[0027]圖2基于Hash函數(shù)的條碼生成系統(tǒng)實(shí)現(xiàn)流程圖
[0028]說明:Program.cs是程序的主入口點(diǎn),首先進(jìn)入winform程序入口即BarCodeProducer.cs文件,這是系統(tǒng)界面的設(shè)計(jì)文件;用戶輸入商品密碼,即content,同時(shí)選擇Hash函數(shù);BarCodeProducer.cs文件將content傳到對應(yīng)的HashCheck類中,獲取hashCheckBit,再將hashCheckBit傳到GetNewContent這個(gè)類中,獲取完整的13位條碼值newContent,再將newContent傳到BarCodeProvider這個(gè)類中,產(chǎn)生條碼圖片,將圖片傳回BarCodeProducer,由窗口程序?qū)?yīng)的組件進(jìn)行展示;通過BarCodeProducer選擇保存路徑進(jìn)行保存。
【具體實(shí)施方式】
[0029]為了方便普通讀碼器識(shí)讀,基于Hash函數(shù)的條碼生成系統(tǒng)也采用EAN-13碼,但自行定義各碼位代表的含義,米取6+6+1的方式。條碼前6位CT6表不商品生產(chǎn)時(shí)間批號部分信息。
[0030]CT6 = (CT >> 13)
[0031]其中CT為當(dāng)前計(jì)算機(jī)時(shí)鐘,是一個(gè)32bit的長整數(shù)>> i表示t右移1-bit。也就是說,條碼前6位批號CT6是截取當(dāng)前計(jì)算機(jī)時(shí)鐘CT的高19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。
[0032]條碼中間6位是由Hash函數(shù)產(chǎn)生的認(rèn)證碼AC。
[0033]AC = MSB19 [Hash (CT | | Ki)]
[0034]其中,Ki是廠家為該商品設(shè)置的密碼,8個(gè)字符以上;I I表示級聯(lián)運(yùn)算WSBiQ1)表示截取h的前1-bit。也就是說,條碼中間6位認(rèn)證碼AC是截取Hash函數(shù)輸出的前19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)??紤]國家密碼政策,Hash函數(shù)直接采用現(xiàn)有的算法。本系統(tǒng)選擇了3種Hash函數(shù)來實(shí)現(xiàn):SHA-1、SHA-512和SPONGENT,分別應(yīng)用于32位平臺(tái)、64位平臺(tái)和資源受限環(huán)境。
[0035]條碼最后I位校驗(yàn)碼的產(chǎn)生方式與普通EAN-13碼完全相同。
[0036]最后,按照圖2的實(shí)現(xiàn)流程圖進(jìn)行實(shí)現(xiàn)。
【主權(quán)項(xiàng)】
1.基于Hash函數(shù)的條碼生成系統(tǒng),其總體特征是:采用EAN-13碼,但自行定義各碼位代表的含義,米取6+6+1的方式;條碼前6位表不商品生產(chǎn)時(shí)間批號部分信息,中間6位是由Hash函數(shù)產(chǎn)生的認(rèn)證碼,最后I位校驗(yàn)碼的產(chǎn)生方式與普通EAN-13碼完全相同。2.根據(jù)權(quán)利要求1所述的條碼生成系統(tǒng),其條碼前6位批號CT6的產(chǎn)生方式為:CT6 = (CT >> 13) 其中,CT為當(dāng)前計(jì)算機(jī)時(shí)鐘,是一個(gè)32bit的長整數(shù);t >> i表示t右移1-bit ;也就是說,條碼前6位批號CT6是截取當(dāng)前計(jì)算機(jī)時(shí)鐘CT的高19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。3.根據(jù)權(quán)利要求1所述的條碼生成系統(tǒng),其條碼中間6位認(rèn)證碼AC的產(chǎn)生方式為:AC = MSB19 [Hash (CT I Ki)] 其中,Ki是廠家為該商品設(shè)置的密碼,8個(gè)字符以上;CT是32bit長的計(jì)算機(jī)時(shí)鐘;I表示級聯(lián)運(yùn)算WSBiQi)表示截取h的前1-bit ;也就是說,條碼中間6位認(rèn)證碼AC是截取Hash函數(shù)輸出的前19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。
【專利摘要】條碼是編譯碼領(lǐng)域用于個(gè)體標(biāo)識(shí)的編碼制式。EAN-13碼易被偽造?;贖ash函數(shù)的條碼生成系統(tǒng)通過Hash函數(shù)實(shí)現(xiàn)防偽認(rèn)證。本系統(tǒng)也采用EAN-13碼,但自行定義各碼位代表的含義,采取6+6+1的方式。條碼前6位批號CT6是截取當(dāng)前計(jì)算機(jī)時(shí)鐘CT的高19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù)。條碼中間6位認(rèn)證碼AC是截取Hash函數(shù)輸出的前19bit,轉(zhuǎn)換成6位十進(jìn)制數(shù),即AC=MSB19[Hash(CT||Ki)]。其中,Ki是廠家為該商品設(shè)置的密碼,8個(gè)字符以上;||表示級聯(lián)運(yùn)算;MSB,(h)表示截取h的前i-bit。條碼最后1位校驗(yàn)碼的產(chǎn)生方式與普通EAN-13碼完全相同。本系統(tǒng)兼容普通讀碼器,能提高廠商對產(chǎn)品的管理效率,節(jié)省成本,并實(shí)現(xiàn)商品的防偽認(rèn)征,主要用于產(chǎn)生商品所需的條碼,實(shí)現(xiàn)對商品的物流管理、市場監(jiān)控與統(tǒng)計(jì)決策。
【IPC分類】G06Q30/00, G06K19/06
【公開號】CN104933587
【申請?zhí)枴緾N201510377677
【發(fā)明人】黃玉劃, 劉震, 黃凡帆, 劉寧鐘, 曾慶喜
【申請人】南京航空航天大學(xué)
【公開日】2015年9月23日
【申請日】2015年6月29日