劉守兵
(東華大學(xué),上海 201620)
隨著電子商務(wù)的發(fā)展,特別是奢侈品網(wǎng)上交易的發(fā)展,快遞運(yùn)輸?shù)陌踩找嬉鹑藗兊年P(guān)注。常見的電子密碼鎖,一般只有固定的密碼,容易遭到暴力破解,不能滿足快遞運(yùn)輸?shù)男枰1疚臄M設(shè)計(jì)一種每次開鎖需輸入不同密碼的電子密碼鎖,以防止密碼被暴力破解,并可以根據(jù)開鎖代碼判斷快遞運(yùn)輸狀態(tài)。
(1)共5位密碼,每位密碼的取值范圍為 0~9。
(2)系統(tǒng)根據(jù)開鎖次數(shù)、電子鎖序號、開機(jī)隨機(jī)數(shù)動態(tài)生成密碼。
(3)5位密碼輸入不完全正確時(shí),報(bào)警30 s,重新生成開機(jī)隨機(jī)數(shù)并顯示,生成新的密碼,用戶需要新的密碼才能打開密碼鎖。
(4)鍵入的 5位密碼完全正確時(shí),LED閃爍 10 s,電子鎖開鎖。
(5)電子鎖上鎖后,顯示上鎖隨機(jī)數(shù),用戶正確輸入密碼前,用戶不能重新生成隨機(jī)數(shù)。
(6)由于電子鎖運(yùn)行過程中,需要輪換顯示上鎖隨機(jī)數(shù)、開鎖隨機(jī)數(shù)以及用戶輸入的密碼,因此,電子鎖需要有一位數(shù)碼管顯示相應(yīng)的功能符。
(7)成本要比較低,硬件和軟件要盡可能簡潔可靠,便于批量生產(chǎn)[1]。
根據(jù)總體設(shè)計(jì)要求分析,該電子鎖電路需要的I/O口線少于15個(gè)。若設(shè)計(jì)得當(dāng),程序不超過8 KB,所需的RAM少于256×8 bit。所以可選擇質(zhì)優(yōu)價(jià)廉的 AT89C52,而且不需要外接程序存儲器和數(shù)據(jù)存儲器及其他擴(kuò)展部件。外圍電路主要由LED、鍵盤輸入顯示電路、繼電器驅(qū)動電路、揚(yáng)聲器等組成。其硬件框圖如圖1所示。
圖1 動態(tài)密碼電子鎖硬件框圖
電子鎖上鎖后,數(shù)碼管顯示5位上鎖代碼,此代碼由2位開鎖次數(shù)和3位隨機(jī)數(shù)隨機(jī)組成。每次上鎖,由于開鎖次數(shù)和生成的隨機(jī)數(shù)不同,所以每次上鎖的上鎖代碼也不同。上鎖后,上鎖代碼存入E2PROM,正確開鎖前,不允許重復(fù)獲取上鎖代碼。第一次按開鎖鍵,數(shù)碼管顯示5位開鎖代碼,此代碼由前兩位的開鎖次數(shù)代碼和后三位的隨機(jī)數(shù)組成。如果開鎖代碼顯示的次數(shù)代碼與上鎖代碼顯示的上鎖次數(shù)代碼不同,客戶可以拒收或聯(lián)系賣家。第二次按開鎖鍵,進(jìn)入密碼輸入程序,客戶可以按移位鍵和數(shù)字增加鍵輸入計(jì)算所得的密碼。全部密碼輸入完畢后,用戶第三次按下開鎖鍵,系統(tǒng)驗(yàn)證輸入密碼是否正確,如正確,開鎖,綠色 LED閃爍 10 s;若密碼錯(cuò)誤,蜂鳴器報(bào)警30 s后,重新顯示新的開鎖代碼,需要輸入最新生成的密碼。用戶需要密碼超時(shí),重新顯示開鎖代碼,用戶需要輸入新的密碼。整個(gè)系統(tǒng)程序框圖如圖2所示。
圖2 動態(tài)密碼電子鎖的軟件流程圖
為了保證程序運(yùn)行過程中可以根據(jù)需要隨時(shí)顯示不同的隨機(jī)數(shù),本程序在定時(shí)器中斷程序放置一個(gè)遞增變量作為種子,以調(diào)用strand()程序初始化隨機(jī)數(shù)程序。然后調(diào)用rand()產(chǎn)生隨機(jī)數(shù)。
上鎖隨機(jī)數(shù)由3位隨機(jī)數(shù)和2位開鎖次數(shù)代碼組成。在本系統(tǒng)中采用隨機(jī)數(shù)的個(gè)位、十位、百位和開鎖次數(shù)的個(gè)位、十位組成。系統(tǒng)取得這5個(gè)數(shù)字后,根據(jù)其和格式化這5個(gè)數(shù)字,生成上鎖隨機(jī)數(shù)。其程序流程圖如圖3所示。
開鎖隨機(jī)數(shù)由3位隨機(jī)數(shù)和2位開鎖次數(shù)代碼組成。為了方便客戶根據(jù)開鎖次數(shù)判斷快遞運(yùn)輸狀態(tài),開鎖代碼的首兩位為開鎖次數(shù)的十位和個(gè)位。后三位為隨機(jī)數(shù)百位、十位和個(gè)位。
圖3 上鎖代碼程序流程圖
電子鎖系統(tǒng)運(yùn)行過程中,每次用戶輸入密碼后,系統(tǒng)首先根據(jù)上鎖隨機(jī)數(shù)、開鎖隨機(jī)數(shù)、開鎖次數(shù)、電子鎖序列號生成密碼,然后與用戶輸入的密碼匹配。密碼輸入正確,開鎖,發(fā)光管閃爍,并初始化參數(shù),運(yùn)行電子鎖再次上鎖。若密碼輸入錯(cuò)誤,報(bào)警30 s,在報(bào)警的過程中,不接收任何按鍵輸入,而是產(chǎn)生新的開鎖隨機(jī)數(shù)并顯示,用戶需要輸入最新產(chǎn)生的密碼才能開鎖。其程序流程圖如圖4所示。
圖4 密碼驗(yàn)證程序流程圖
管理系統(tǒng)主要由數(shù)據(jù)庫、商家發(fā)貨管理程序、買家收貨系統(tǒng)組成。數(shù)據(jù)庫主要用來存儲上鎖代碼、序列號、商家信息、電子鎖編碼信息和買家信息,商家發(fā)貨后,登錄管理系統(tǒng),輸入發(fā)貨商品所用電子鎖編碼信息和上鎖代碼以及買家ID。對應(yīng)買家登錄后,系統(tǒng)提示買家收貨以及商品所用電子鎖的開鎖代碼首兩位數(shù)字。收到貨物后,買家檢查開鎖代碼是否符合系統(tǒng)提示,若正確,登錄管理系統(tǒng),輸入開鎖代碼,獲取密碼開鎖;若錯(cuò)誤,直接拒收,或聯(lián)系賣家處理。
動態(tài)密碼電子鎖可以根據(jù)開鎖次數(shù)、電子鎖序列號動態(tài)生成密碼,每次開鎖需要輸入不同的密碼才能開鎖,不能暴力破解開鎖密碼,滿足了快遞運(yùn)輸安全性的要求。同時(shí)硬件簡潔可靠,符合系統(tǒng)設(shè)計(jì)要求。
[1]董繼成.一種新型安全的單片機(jī)密碼鎖[J].電子技術(shù),2004(3):58-60.