动态密码电子锁的设计

2012-08-08 02:31刘守兵
网络安全与数据管理 2012年15期
关键词:电子锁密码锁个位

刘守兵

(东华大学,上海 201620)

随着电子商务的发展,特别是奢侈品网上交易的发展,快递运输的安全日益引起人们的关注。常见的电子密码锁,一般只有固定的密码,容易遭到暴力破解,不能满足快递运输的需要。本文拟设计一种每次开锁需输入不同密码的电子密码锁,以防止密码被暴力破解,并可以根据开锁代码判断快递运输状态。

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所示。

图1 动态密码电子锁硬件框图

电子锁上锁后,数码管显示5位上锁代码,此代码由2位开锁次数和3位随机数随机组成。每次上锁,由于开锁次数和生成的随机数不同,所以每次上锁的上锁代码也不同。上锁后,上锁代码存入E2PROM,正确开锁前,不允许重复获取上锁代码。第一次按开锁键,数码管显示5位开锁代码,此代码由前两位的开锁次数代码和后三位的随机数组成。如果开锁代码显示的次数代码与上锁代码显示的上锁次数代码不同,客户可以拒收或联系卖家。第二次按开锁键,进入密码输入程序,客户可以按移位键和数字增加键输入计算所得的密码。全部密码输入完毕后,用户第三次按下开锁键,系统验证输入密码是否正确,如正确,开锁,绿色 LED闪烁 10 s;若密码错误,蜂鸣器报警30 s后,重新显示新的开锁代码,需要输入最新生成的密码。用户需要密码超时,重新显示开锁代码,用户需要输入新的密码。整个系统程序框图如图2所示。

图2 动态密码电子锁的软件流程图

3 上锁代码、开锁代码的生成程序

为了保证程序运行过程中可以根据需要随时显示不同的随机数,本程序在定时器中断程序放置一个递增变量作为种子,以调用strand()程序初始化随机数程序。然后调用rand()产生随机数。

上锁随机数由3位随机数和2位开锁次数代码组成。在本系统中采用随机数的个位、十位、百位和开锁次数的个位、十位组成。系统取得这5个数字后,根据其和格式化这5个数字,生成上锁随机数。其程序流程图如图3所示。

开锁随机数由3位随机数和2位开锁次数代码组成。为了方便客户根据开锁次数判断快递运输状态,开锁代码的首两位为开锁次数的十位和个位。后三位为随机数百位、十位和个位。

图3 上锁代码程序流程图

4 密码验证程序

电子锁系统运行过程中,每次用户输入密码后,系统首先根据上锁随机数、开锁随机数、开锁次数、电子锁序列号生成密码,然后与用户输入的密码匹配。密码输入正确,开锁,发光管闪烁,并初始化参数,运行电子锁再次上锁。若密码输入错误,报警30 s,在报警的过程中,不接收任何按键输入,而是产生新的开锁随机数并显示,用户需要输入最新产生的密码才能开锁。其程序流程图如图4所示。

图4 密码验证程序流程图

5 管理系统程序

管理系统主要由数据库、商家发货管理程序、买家收货系统组成。数据库主要用来存储上锁代码、序列号、商家信息、电子锁编码信息和买家信息,商家发货后,登录管理系统,输入发货商品所用电子锁编码信息和上锁代码以及买家ID。对应买家登录后,系统提示买家收货以及商品所用电子锁的开锁代码首两位数字。收到货物后,买家检查开锁代码是否符合系统提示,若正确,登录管理系统,输入开锁代码,获取密码开锁;若错误,直接拒收,或联系卖家处理。

动态密码电子锁可以根据开锁次数、电子锁序列号动态生成密码,每次开锁需要输入不同的密码才能开锁,不能暴力破解开锁密码,满足了快递运输安全性的要求。同时硬件简洁可靠,符合系统设计要求。

[1]董继成.一种新型安全的单片机密码锁[J].电子技术,2004(3):58-60.

猜你喜欢
电子锁密码锁个位
纯电动汽车无法充电问题分析及解决
个位与十位的故事
个位与十位的故事
个位与十位的故事
基于AT89C52的红外线电子锁系统的设计
开启密码锁
学习100以内的数三要点
数字密码锁的逻辑实现
免供电电子锁系统的设计与实现