一種二維碼解碼庫與配套攝像頭綁定的方法及其系統(tǒng)的制作方法
【技術(shù)領域】
[0001]本發(fā)明涉及計算機軟件技術(shù)領域,尤其涉及一種二維碼解碼庫與配套攝像頭綁定的方法及其系統(tǒng)。
【背景技術(shù)】
[0002]在現(xiàn)代商業(yè)活動中,二維碼的應用十分廣泛,如產(chǎn)品防偽/溯源,廣告推送,商品交易,信息傳遞等等。隨著國內(nèi)物聯(lián)網(wǎng)產(chǎn)業(yè)的蓬勃發(fā)展,更多的二維碼技術(shù)應用解決方案被開發(fā)。
[0003]目前的二維碼解決方案提供方式主要包括:
[0004]A)提供單獨的解碼庫,沒提供配套的專用攝像頭。這種方式的解碼效果和速度都不能保證,不能滿足特殊的工業(yè)應用場合。而且客戶購買一次授權(quán)之后就無需再購買授權(quán),拷貝解碼庫到各個產(chǎn)品上便可使用。這種方式適用于一些開源,免費的場合,比如手機之類的。
[0005]B)另外一種就是提供配套的專用攝像頭。而且在攝像頭上集成了專用的硬件芯片來和解碼庫做綁定,這種實現(xiàn)方式破解難度很高,很安全。但是硬件成本比較高。
【發(fā)明內(nèi)容】
[0006]本發(fā)明要解決的技術(shù)問題之一,在于提供一種二維碼解碼庫與配套攝像頭綁定的方法,實現(xiàn)一種低成本的綁定方式,提高了系統(tǒng)安全性。
[0007]本發(fā)明的問題之一是這樣實現(xiàn)的:一種二維碼解碼庫與配套攝像頭綁定的方法,該方法具體包括如下步驟:
[0008]步驟1、將攝像頭通過Camera接口和I2C接口與一 CPU相連,所述Camera接口用于傳輸圖像數(shù)據(jù),I2C接口用來傳輸攝像頭配置控制命令;
[0009]步驟2、CPU通過I2C接口傳輸攝像頭配置控制命令,CPU通過Camera接口接收圖像數(shù)據(jù);
[0010]步驟3、對攝像頭是否與二維解碼庫是配套的進行判斷;不是,則結(jié)束流程,是,則對圖像數(shù)據(jù)進行加密簽名,并進入步驟4 ;
[0011]步驟4、對加密簽名的圖像數(shù)據(jù)進行校驗;校驗成功,則對圖像數(shù)據(jù)進行解碼,進入步驟5,不成功則返回步驟2 ;
[0012]步驟5、獲取解碼結(jié)果,把結(jié)果反饋給客戶端應用程序,并繼續(xù)獲取下一張圖像數(shù)據(jù)進行循環(huán)操作,直至解碼完所有圖像數(shù)據(jù)。
[0013]進一步地,所述二維解碼庫和廠商自制的攝像頭進行綁定處理,且必須配套使用;客戶若更換成自己的攝像頭,則無法對圖像數(shù)據(jù)進行正確的解碼。
[0014]進一步地,所述對圖像數(shù)據(jù)進行加密簽名,具體為:對圖像數(shù)據(jù)進行SHA256計算,生成一個256位的HASH值;對所述256位的HASH值做3DES加密;生成一個256位的密文數(shù)據(jù);
[0015]所述3DES要進行加密的24字節(jié)密鑰,按照如下規(guī)則生成:
[0016]預先設定一個固定的2048字節(jié)隨機數(shù)據(jù);
[0017]把圖像數(shù)據(jù)的256位HASH值的前三個字節(jié)的值分別做為偏移,從固定的2048字節(jié)數(shù)據(jù)中拷貝連續(xù)的8個字節(jié)數(shù)據(jù),組成一個24字節(jié)數(shù)據(jù);
[0018]獲取系統(tǒng)開機到加密簽名的時間,所述時間為一個4字節(jié)的整數(shù);
[0019]把4個字節(jié)的時間值放在所述24字節(jié)數(shù)據(jù)的后面,總共28字節(jié)數(shù)據(jù)做SHA256運算,生成一個256位HASH數(shù)據(jù);
[0020]取所述256位HASH數(shù)據(jù)的中間24字節(jié)作為所述24字節(jié)密鑰;
[0021]把所述4個字節(jié)的時間值,插入到所述256位的密文數(shù)據(jù)的中間,形成一 288位的數(shù)據(jù)。
[0022]進一步地,所述對攝像頭是否與二維解碼庫是配套的進行判斷,具體為:CPU通過I2C接口與攝像頭進行交互,對攝像頭內(nèi)部的寄存器進行讀寫操作,通過讀取攝像頭的ID以及寄存器的一些默認值來判斷攝像頭是否合法;如果客戶更換了攝像頭,那么攝像頭的ID以及寄存器的一些默認值就會和二維解碼庫中設定的預期值不同,這樣攝像頭就不是配套的攝像頭;所述CPU是直接控制GP1管腳,產(chǎn)生I2C的時序來與攝像頭進行交互。
[0023]進一步地,所述步驟4中對圖像數(shù)據(jù)的簽名進行校驗,具體為:獲取288位的數(shù)據(jù),根據(jù)所述24字節(jié)密鑰的生成規(guī)則,從288位的數(shù)據(jù)中把4字節(jié)的時間值提取出來,然后再根據(jù)生成規(guī)則生成一新密鑰,并且執(zhí)行3DES加密;判斷生成的新密文是否和傳遞進來的256位的密文數(shù)據(jù)相同;如果相同就進行解碼,否則就拒絕解碼。
[0024]本發(fā)明要解決的技術(shù)問題之二,在于提供一種二維碼解碼庫與配套攝像頭綁定的系統(tǒng),實現(xiàn)一種低成本的綁定方式,提高了系統(tǒng)安全性。
[0025]本發(fā)明的問題之二是這樣實現(xiàn)的:一種二維碼解碼庫與配套攝像頭綁定的系統(tǒng),所述系統(tǒng)包括連接模塊、攝像頭驅(qū)動模塊、安全驅(qū)動模塊、二維碼解碼模塊以及接口反饋模塊;
[0026]所述連接模塊,用于將攝像頭通過Camera接口和I2C接口與一 CPU相連,所述Camera接口用于傳輸圖像數(shù)據(jù),I2C接口用來傳輸攝像頭配置控制命令;
[0027]所述攝像頭驅(qū)動模塊,為CPU通過I2C接口傳輸攝像頭配置控制命令,CPU通過Camera接口接收圖像數(shù)據(jù);
[0028]所述安全驅(qū)動模塊,用于對攝像頭是否與二維解碼庫是配套的進行判斷;不是,則結(jié)束流程,是,則對圖像數(shù)據(jù)進行加密簽名,并進行二維碼解碼模塊;
[0029]所述二維碼解碼模塊,用于對加密簽名的圖像數(shù)據(jù)進行校驗;校驗成功,則對圖像數(shù)據(jù)進行解碼,并進行接口反饋模塊,不成功,則進行攝像頭驅(qū)動模塊;
[0030]所述接口反饋模塊,獲取解碼結(jié)果,把結(jié)果反饋給客戶端應用程序,并繼續(xù)獲取下一張圖像數(shù)據(jù)進行循環(huán)操作,直至解碼完所有圖像數(shù)據(jù)。
[0031 ] 進一步地,所述二維解碼庫和廠商自制的攝像頭進行綁定處理,且必須配套使用;客戶若更換成自己的攝像頭,則無法對圖像數(shù)據(jù)進行正確的解碼。
[0032]進一步地,所述對圖像數(shù)據(jù)進行加密簽名,具體為:對圖像數(shù)據(jù)進行SHA256計算,生成一個256位的HASH值;對所述256位的HASH值做3DES加密;生成一個256位的密文數(shù)據(jù);
[0033]所述3DES要進行加密的24字節(jié)密鑰,按照如下規(guī)則生成:
[0034]預先設定一個固定的2048字節(jié)隨機數(shù)據(jù);
[0035]把圖像數(shù)據(jù)的256位HASH值的前三個字節(jié)的值分別做為偏移,從固定的2048字節(jié)數(shù)據(jù)中拷貝連續(xù)的8個字節(jié)數(shù)據(jù),組成一個24字節(jié)數(shù)據(jù);
[0036]獲取系統(tǒng)開機到加密簽名的時間,所述時間為一個4字節(jié)的整數(shù);
[0037]把4個字節(jié)的時間值放在所述24字節(jié)數(shù)據(jù)的后面,總共28字節(jié)數(shù)據(jù)做SHA256運算,生成一個256位HASH數(shù)據(jù);
[0038]取所述256位HASH數(shù)據(jù)的中間24字節(jié)作為所述24字節(jié)密鑰;
[0039]把所述4個字節(jié)的時間值,插入到所述256位的密文數(shù)據(jù)的中間,形成一 288位的數(shù)據(jù)。
[0040]進一步地,所述對攝像頭是否與二維解碼庫是配套的進行判斷,具體為:CPU通過I2C接口與攝像頭進行交互,對攝像頭內(nèi)部的寄存器進行讀寫操作,通過讀取攝像頭的ID以及寄存器的一些默認值來判斷攝像頭是否合法;如果客戶更換了攝像頭,那么攝像頭的ID以及寄存器的一些默認值就會和二維解碼庫中設定的預期值不同,這樣攝像頭不是配套的攝像頭;所述CPU是直接控制GP1管腳,產(chǎn)生I2C的時序來與攝像頭進行交互。
[0041]進一步地,所述對圖像數(shù)據(jù)的簽名進行校驗,具體為:獲取288位的數(shù)據(jù),根據(jù)所述24字節(jié)密鑰的生成規(guī)則,從288位的數(shù)據(jù)中把4字節(jié)的時間值提取出來,然后再根據(jù)生成規(guī)則生成一新密鑰,并且執(zhí)行3DES加密;判斷生成的新密文是否和傳遞進來的256位的密文數(shù)據(jù)相同;如果相同就進行解碼,否則就拒絕解碼。
[0042]本發(fā)明具有如下優(yōu)點:本發(fā)明解決廠商的二維碼解碼庫與廠商配套自制的攝像頭綁定的問題,也就是客戶必須要把廠商提供的二維碼解碼庫和攝像頭配套使用才能正確解碼;防止客戶脫離配套的攝像頭單獨使用解碼庫,提高了系統(tǒng)的安全性。
【附圖說明】
[0043]圖1為本發(fā)明方法流程示意圖。
[0044]圖2為本發(fā)明的系統(tǒng)結(jié)構(gòu)示意圖。
【具體實施方式】
[0045]請參閱圖1所示,本發(fā)明的一種二維碼解碼庫與配套攝像頭綁定的方法,該方法具體包括如下步驟:
[0046]步驟1、將攝像頭通過Camera接口和I2C接口與一 CPU相連,所述Camera接口用于傳輸圖像數(shù)據(jù),I2C接口用來傳輸攝像頭配置控制命令;
[0047]步驟2、CPU通過12C接口傳輸攝像頭配置控制命令,來配置攝像頭并啟動攝像頭,CPU通過Camera接口接收圖像數(shù)據(jù);<