开锁方法及装置、电子锁与流程

文档序号:11730299阅读:396来源:国知局
开锁方法及装置、电子锁与流程

本申请涉及锁具技术领域,尤其涉及一种开锁方法及装置、电子锁。



背景技术:

在相关技术中,人们在为电子锁设定开锁密码后,该开锁密码往往是固定的,直至用户对电子锁进行重新设定才会改变。其中,一方面,用户容易遗忘固定的开锁密码导致无法开锁;另一方面,在较长时间段内固定不变的开锁密码也容易被他人非法破解。



技术实现要素:

有鉴于此,本申请提供一种开锁方法及装置、电子锁。

为实现上述目的,本申请提供技术方案如下:

根据本申请的第一方面,提出了一种开锁方法,包括:

将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值进行计算,获得第一密码;

接收包含第二密码的开锁指令,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值计算得到的,所述电子设备获得的密钥和所述电子锁存储的密钥一致,所述电子设备获得的预设加密算法和所述电子锁存储的预设加密算法一致;

若所述第一密码和所述第二密码一致,执行所述电子锁的开锁动作。

根据本申请的第二方面,提出了一种开锁装置,包括:

动态密码获得单元,用于将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值进行计算,获得第一密码;

开锁指令接收单元,用于接收包含第二密码的开锁指令,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值计算得到的,所述电子设备获得的密钥和所述电子锁存储的密钥一致,所述电子设备获得的预设加密算法和所述电子锁存储的预设加密算法一致;

控制单元,用于在所述第一密码和所述第二密码一致时,执行所述电子锁的开锁动作。

根据本申请的第三方面,提出了一种电子锁,包括存储器、处理器及存储于存储器上并可被处理器运行的计算机程序,所述处理器在执行所述计算机程序时实现如下步骤:

将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值进行计算,获得第一密码;

接收包含第二密码的开锁指令,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值计算得到的,所述电子设备获得的密钥和所述电子锁存储的密钥一致,所述电子设备获得的预设加密算法和所述电子锁存储的预设加密算法一致;

在所述第一密码和所述第二密码一致时,执行所述电子锁的开锁动作。

本申请实施例中,由于电子锁的第一密码(正确的开锁密码)是随着时间因子不断变化的,在一段时间内有效,相较于固定密码,其安全性更高。另外,在开锁过程中,需要电子设备通过相同的密钥、时间因子及相同的算法计算出第二密码,此后用户利用该第二密码进行开锁验证,在所述第一密码和所述第二密码一致时,执行所述电子锁的开锁动作。可见,在开锁过程中,电子锁并不需要联网,在离线方式下实现,在提高安全性的同时,也可降低电子锁的成本;此外,离线方式下所生成的动态密码不容易被他人窃取,进一步提升安全性。

附图说明

图1是本申请一示例性实施例提供的一种实现开锁的场景图;

图2是本申请一示例性实施例中的开锁方法的流程图;

图3是本申请一示例性实施例提供的一种开锁装置的框图。

具体实施方式

在相关技术中,电子密码锁(或称电子锁)主要可以分为两类:一类是固定密码的电子密码锁,另一类是动态密码的电子密码锁。固定密码的电子密码锁通常由用户或锁具生产商设置密码,这种固定密码容易被破解或泄露而造成财产损失,且一段时间内用户容易忘记这类固定密码而无法开启密码锁。关于动态密码锁,目前包括两种:一种是需要联网的电子密码锁,通过联网可以实时动态更改密码;另一种是预先设定好的包括多个候选密码的密码列表,按一定顺序依次使用上述密码列表中各候选密码。然而,需要联网的电子密码锁制造成本较高,目前还不适合普及,而且联网的服务器若被黑客访问,则会造成大批量密码泄露的风险。预先设定好密码列表的电子动态密码锁,容易出现电子锁内部与密码列表平台计数器不同步的现象。鉴于以上问题,提出如下技术方案。

图1是本申请一示例性实施例提供的一种实现开锁的场景图,如图1所示,在一种示例性的开锁场景中,包括:电子锁10、用户使用的终端设备20以及服务器30,其中,电子锁10并不需要联网,通过离线方式生成第一密码,该第一密码为正确的用于实现开锁的密码。并且该第一密码是随着时间不断动态变化的,在生成之后只会在一定时长内有效,可以按照一定的时间间隔不断更新有效的第一密码。也就是说,对于某个确定的时刻,电子锁10都会对应生成唯一有效的第一密码用以触发开锁动作。

终端设备20上可以安装用于获取开锁动态密码的应用app,该服务器30可以安装有与所述app对应的服务端应用程序。当用户需要开锁时,可以通过终端设备20打开app,选取所需要开锁的电子锁,并点击获取用于对该锁进行开锁的密码。此后,终端设备20便向服务器30发送密码获取请求,服务器30可根据预设算法,计算得到一个密码并返回到上述终端设备20,终端设备20将收到的密码显示给用户查看,随后,用户将查看到的开锁密码通过上述电子锁10的输入界面11进行输入,并点击“开锁”按键。最终,电子锁10将用户输入的密码和当前时刻对应的唯一有效的第一密码进行比较,若两者一致,则执行开锁动作,否则,拒绝执行开锁动作。

需说明的是,电子锁10上的用户界面11包括触摸屏或实体按键方式等,本文不作限定。另外,上述电子锁11接收开锁密码的方式并不限于通过电子锁10上设置的用户界面11。例如,通过nfc(nearfieldcommunication,近距离无线通信)、红外、蓝牙等方式从用户使用的终端设备10接收开锁密码。

图2是本申请一示例性实施例中的开锁方法的流程图。结合图1和图2所示,本申请实施例中,该开锁方法的执行主体可为电子锁10,该方法通过步骤101~103来实现,其中:

在步骤101中,将电子锁10存储的密钥和所述电子锁10确定的当前时间因子作为所述电子锁10存储的预设加密算法的输入值进行计算,获得第一密码。

本申请实施例可以利用totp(time-basedone-timepassword)算法计算得到第一密码。

在申请实施例中,电子锁10可以根据电子锁10内置的时钟模块来获得当前时间因子。其中,所述当前时间因子可以包括:用于表征当前时刻的第一输入值t、和/或用于表征时间步长的第二输入值x。上述时间步长可以用来确定生成的第一密码在某个时间段内有效,该时间步长可以根据实际需要进行设定,如:60秒。其中,在一种实施例中,可以根据当前时刻,确定与之对应的unix时间戳,并将该unix时间戳确定为上述第一输入值t。举例而言,若当前时刻为:2017-3-23,12:00:00,则上述第一输入值t可以为:“1490241600”。当然根据算法需要,可以将上述当前时刻对应的数值进行进制转换(如十进制转二进制等);若设定的时间步长为60秒,则第二输入值x为:60,表示在当前时刻:2017-3-23,12:00:00生成的第一密码在12:00:00~12:01:00内有效。

当然,由于用户输入密码的过程需要耗费一定的时长,可能存在上述时间步长太短而导致用户来不及在所述时间步长内完成输入动作,导致开锁失败。鉴于此,在本申请可行实施例中,可以设定生成的第一密码在更长的时间内有效,例如:5分钟。其中,在5分钟内,电子锁可以生成多个第一密码。例如,时间步长为60秒,则可以生成5个不同的第一密码。在此5分钟内,若电子锁接收到用户输入的密码(待验证),则需要验证所输入的密码是否为以上5个第一密码中的任意一个,若是,则执行开锁动作;否则,拒绝执行开锁动作。

由于电子锁是依赖内置的时钟模块来确定当前时间因子,所以时钟模块的准确性是获得精确的当前时间因子的关键。本申请一实施例中,为了能够确保时钟模块的准确性,可以定期或不定期地通过联网方式(如通过wi-fi)对所述时钟模块进行校对或更新,从而使得时钟模块的时间和网络时间同步。其中,同步时钟模块的过程可以由用户操作来触发,也可以通过设定的更新周期由所述电子锁自动联网并触发,本申请不作限定。当然,如果电子锁内置的时钟模块本身的性能较好,足以确保在较长时间段内能够获取到精度较高的实时时间,那么也可不为该电子锁设置联网更新时钟的功能。

在申请一实施例中,所述预设加密算法可为:hmac(hash-basedmessageauthenticationcode,哈希消息认证码)算法、hmac-sha-1算法、hmac-md5算法等。其中,以hmac-sha-1算法为例,若定义电子锁存储的密钥为k,则计算第一密码的公式如下:

totp(k,t,x)=truncate(hmac-sha-1(k,t/x))。

在步骤102中,接收包含第二密码的开锁指令。其中,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值计算得到的,所述电子设备获得的密钥和所述电子锁存储的密钥一致,所述电子设备获得的预设加密算法和所述电子锁存储的预设加密算法一致。

其中,步骤102中所述的电子设备可以为:用户使用的终端设备20或服务器30中的一个或多个。在一种场景中,电子锁10的制造商在生产该电子锁10后,便会为该电子锁10分配一个唯一的密钥以及定义一种用以计算动态密码的预设密码算法。其中,上述唯一的密钥及预设密码算法也会被提供给上述服务器30进行存储。这样,服务器30也会根据当前时间因子及预先存储的密钥,利用上述预设密码算法实时计算出第二密码(用于对电子锁进行开锁),并将计算得到的第二密码发送到终端设备20上。需要说明的是,获得密钥、获得当前时间因子、获得预设密码算法及进行运算的步骤可由服务器30或终端设备20中的一者或两者完成,本申请对此不作限定。

本申请实施例中,所述电子设备(服务器30或终端设备20)获得密钥的步骤,可以具体:

电子设备读取预先存储于电子设备上的密钥;或,

电子设备根据所述电子锁的标识,查找与所述标识对应的密钥;其中,所述电子设备上预先存储有标识和密钥的对应关系。

一般地,由于哈希算法计算得到的密码会比较长,若直接将计算得到的多位提供给用户进行输入,则显然操作繁琐且容易输错。为此,在本申请可选的实施例中,上述步骤101可以具体包括:

步骤1011:将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值,计算得出第一输出值。

步骤1012:根据预设规则从所述第一输出值中截取第一密码。

所述预设规则例如为:截取第一输出值的最后6位数字作为第一密码,或截取第一输出值的最前6位数字作为第一密码等。其中,所截取的第一密码的位数并不作限制,主要是方便用户快捷地输入,并且还确保具备一定的安全性。

相应地,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值,在计算得到第二输出值后,按照所述预设规则从所述第二输出值中截取得到的。

在步骤103中,若所述第一密码和所述第二密码一致,执行所述电子锁10的开锁动作。

值得一提的是,用户在使用上述app之前,可以在服务器30上注册一个用户id及设定一个相应的登录密码,并且,在注册之后输入所需要控制开锁的电子锁id,如此才能将电子锁id对应的密钥及预设密码算法提供给服务器30进行存储。其中,为了验证用户具备控制电子锁的权限,可以用户在输入电子锁id的过程中,要求用户输入厂家提供的产品序列号等信息。设定完成之后,用户便可以通过用户id及登录密码进行登录,并在登录之后请求获得第二密码并尝试开锁。对于其他不具备权限的用户来说,是无法获得第二密码的。

本申请实施例中,由于电子锁10的第一密码(正确的开锁密码)是随着时间因子不断变化的,在一段时间内有效,相较于固定密码,其安全性更高。另外,在开锁过程中,需要电子设备(服务器30或终端设备20)通过相同的密钥、时间因子及相同的算法计算出第二密码,此后用户利用该第二密码进行开锁验证,在所述第一密码和所述第二密码一致时,执行所述电子锁10的开锁动作。可见,在开锁过程中,电子锁10并不需要联网,在离线方式下实现,在提高安全性的同时,也可降低电子锁10的成本;此外,离线方式下所生成的动态密码不容易被他人窃取,进一步提升安全性。

图3是本申请一示例性实施例提供的一种开锁装置200的框图。在硬件层面,该装置可以被应用于电子锁10上,所述电子锁10可以包括处理器(如mcu)及存储器等,当然也可以包括一些电子锁所必要的零部件(如锁芯、锁控制单元等)。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成上述图3所示的装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。基于以上方法的实现逻辑,该开锁装置200包括:

动态密码获得单元201,用于将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值进行计算,获得第一密码;

开锁指令接收单元202,用于接收包含第二密码的开锁指令,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值计算得到的,所述电子设备获得的密钥和所述电子锁存储的密钥一致,所述电子设备获得的预设加密算法和所述电子锁存储的预设加密算法一致;

控制单元203,用于在所述第一密码和所述第二密码一致时,执行所述电子锁的开锁动作。

本申请一实施例中,所述当前时间因子可以包括:用于表征当前时刻的第一输入值、和/或用于表征时间步长的第二输入值。

本申请一实施例中,所述动态密码获得单元202可以包括:

计算子单元,用于将电子锁存储的密钥和所述电子锁确定的当前时间因子作为所述电子锁存储的预设加密算法的输入值,计算得出第一输出值;

截取子单元,用于根据预设规则从所述第一输出值中截取第一密码;

其中,所述第二密码是将电子设备获得的密钥和所述电子设备确定的当前时间因子作为所述电子设备获得的预设加密算法的输入值,在计算得到第二输出值后,按照所述预设规则从所述第二输出值中截取得到的。

需说明的是,上述装置实施例和上述方法实施例,在不相违背的前提下,可以互为补充。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1