摘 要: 隨著快遞運輸的發展,快遞安全問題日益受到人們的重視。在一般單片機密碼電子鎖的基礎上,改進密碼驗證程序,實現了密碼動態更新的電子鎖,以滿足快遞業的需要。
關鍵詞: 單片機;動態密碼;電子密碼鎖
隨著電子商務的發展,特別是奢侈品網上交易的發展,快遞運輸的安全日益引起人們的關注。常見的電子密碼鎖,一般只有固定的密碼,容易遭到暴力破解,不能滿足快遞運輸的需要。本文擬設計一種每次開鎖需輸入不同密碼的電子密碼鎖,以防止密碼被暴力破解,并可以根據開鎖代碼判斷快遞運輸狀態。
1 設計要求
(1)共5位密碼,每位密碼的取值范圍為0~9。
(2)系統根據開鎖次數、電子鎖序號、開機隨機數動態生成密碼。
(3)5位密碼輸入不完全正確時,報警30 s,重新生成開機隨機數并顯示,生成新的密碼,用戶需要新的密碼才能打開密碼鎖。
(4)鍵入的5位密碼完全正確時,LED閃爍10 s,電子鎖開鎖。
(5)電子鎖上鎖后,顯示上鎖隨機數,用戶正確輸入密碼前,用戶不能重新生成隨機數。
(6)由于電子鎖運行過程中,需要輪換顯示上鎖隨機數、開鎖隨機數以及用戶輸入的密碼,因此,電子鎖需要有一位數碼管顯示相應的功能符。
(7)成本要比較低,硬件和軟件要盡可能簡潔可靠,便于批量生產[1]。
2 設計思路及軟硬件實現
根據總體設計要求分析,該電子鎖電路需要的I/O口線少于15個。若設計得當,程序不超過8 KB,所需的RAM少于256×8 bit。所以可選擇質優價廉的AT89C52,而且不需要外接程序存儲器和數據存儲器及其他擴展部件。外圍電路主要由LED、鍵盤輸入顯示電路、繼電器驅動電路、揚聲器等組成。其硬件框圖如圖1所示。
電子鎖上鎖后,數碼管顯示5位上鎖代碼,此代碼由2位開鎖次數和3位隨機數隨機組成。每次上鎖,由于開鎖次數和生成的隨機數不同,所以每次上鎖的上鎖代碼也不同。上鎖后,上鎖代碼存入E2PROM,正確開鎖前,不允許重復獲取上鎖代碼。第一次按開鎖鍵,數碼管顯示5位開鎖代碼,此代碼由前兩位的開鎖次數代碼和后三位的隨機數組成。如果開鎖代碼顯示的次數代碼與上鎖代碼顯示的上鎖次數代碼不同,客戶可以拒收或聯系賣家。第二次按開鎖鍵,進入密碼輸入程序,客戶可以按移位鍵和數字增加鍵輸入計算所得的密碼。全部密碼輸入完畢后,用戶第三次按下開鎖鍵,系統驗證輸入密碼是否正確,如正確,開鎖,綠色LED閃爍10 s;若密碼錯誤,蜂鳴器報警30 s后,重新顯示新的開鎖代碼,需要輸入最新生成的密碼。用戶需要密碼超時,重新顯示開鎖代碼,用戶需要輸入新的密碼。整個系統程序框圖如圖2所示。
4 密碼驗證程序
電子鎖系統運行過程中,每次用戶輸入密碼后,系統首先根據上鎖隨機數、開鎖隨機數、開鎖次數、電子鎖序列號生成密碼,然后與用戶輸入的密碼匹配。密碼輸入正確,開鎖,發光管閃爍,并初始化參數,運行電子鎖再次上鎖。若密碼輸入錯誤,報警30 s,在報警的過程中,不接收任何按鍵輸入,而是產生新的開鎖隨機數并顯示,用戶需要輸入最新產生的密碼才能開鎖。其程序流程圖如圖4所示。
5 管理系統程序
管理系統主要由數據庫、商家發貨管理程序、買家收貨系統組成。數據庫主要用來存儲上鎖代碼、序列號、商家信息、電子鎖編碼信息和買家信息,商家發貨后,登錄管理系統,輸入發貨商品所用電子鎖編碼信息和上鎖代碼以及買家ID。對應買家登錄后,系統提示買家收貨以及商品所用電子鎖的開鎖代碼首兩位數字。收到貨物后,買家檢查開鎖代碼是否符合系統提示,若正確,登錄管理系統,輸入開鎖代碼,獲取密碼開鎖;若錯誤,直接拒收,或聯系賣家處理。
動態密碼電子鎖可以根據開鎖次數、電子鎖序列號動態生成密碼,每次開鎖需要輸入不同的密碼才能開鎖,不能暴力破解開鎖密碼,滿足了快遞運輸安全性的要求。同時硬件簡潔可靠,符合系統設計要求。
參考文獻
[1] 董繼成.一種新型安全的單片機密碼鎖[J].電子技術,2004(3):58-60.