密码生成方法、装置、存储介质、电子锁、服务器及终端与流程

文档序号:16634359发布日期:2019-01-16 06:52阅读:142来源:国知局
密码生成方法、装置、存储介质、电子锁、服务器及终端与流程

本公开涉及电子锁领域,特别涉及一种密码生成方法、装置、存储介质、电子锁、服务器及终端。



背景技术:

目前公共场所中会设置很多公共资源,公共资源上通常会配置密码锁以保证公共资源的安全。当用户想要使用公共资源时,必须获知密码锁的开锁密码,按照该开锁密码开启密码锁,才能使用公共资源。

公共资源的开锁密码通常是固定的。以公共资源为共享单车为例,当用户想要骑车时,可以在终端上输入共享单车的编号。终端会将该编号发送给管理共享单车的服务器,服务器预先存储了每辆共享单车的开锁密码,可以根据共享单车的编号查询到共享单车的开锁密码,将开锁密码发送给终端,终端显示该开锁密码后,用户查看该开锁密码,将该开锁密码输入到密码锁。而密码锁预先存储了本端的开锁密码,当确定用户输入的开锁密码与预先存储的开锁密码相同时,开启密码锁。

在实现本公开的过程中,发明人发现相关技术至少存在以下问题:

由于密码锁的开锁密码是固定不变的,用户在第一次获知开锁密码之后,可以再次使用该开锁密码开启密码锁,而无需通过终端和服务器,不便于服务器控制公共资源,容易出现用户将公共资源占为己有的情况,导致公共资源的丢失,存在安全隐患。



技术实现要素:

为了解决相关技术的问题,本公开实施例提供了一种密码生成方法、装置、存储介质、电子锁、服务器及终端。所述技术方案如下:

第一方面,提供了一种密码生成方法,应用于电子锁中,所述方法包括:

获取待验证的开锁密码,所述开锁密码由第一数据串和第二数据串组成,所述第一数据串由服务器随机生成,所述第二数据串由所述服务器采用第一预设算法对所述第一数据串和所述电子锁的锁标识进行计算得到;

采用所述第一预设算法,对所述第一数据串和所述电子锁的锁标识进行计算,得到第三数据串;

确定所述第三数据串与所述第二数据串相同时,开启所述电子锁。

在第一方面的第一种可能实现方式中,所述获取待验证的开锁密码,包括:

通过配置的输入模块,获取用户输入的开锁密码,所述开锁密码由用户查看终端显示的所述开锁密码后得到,所述开锁密码由所述服务器发送给所述终端;或者,

通过配置的近距离无线通信模块,接收终端发送的开锁密码,所述开锁密码由所述服务器发送给所述终端。

在第一方面的第二种可能实现方式中,所述确定所述第三数据串与所述第二数据串相同时,开启所述电子锁,包括:

确定所述第三数据串与所述第二数据串相同,且所述开锁密码与已记录的至少一个历史开锁密码均不相同时,开启所述电子锁。

在第一方面的第三种可能实现方式中,所述开启所述电子锁之后,所述方法包括:

当检测到对所述电子锁的锁定操作时,采用第二预设算法,对所述开锁密码和所述锁标识进行计算,得到上锁密码;

将所述上锁密码提供给所述终端,所述终端用于将所述上锁密码发送给所述服务器,所述服务器用于采用所述第二预设算法,对所述开锁密码和所述锁标识进行计算,得到验证密码,确定所述上锁密码与所述验证密码相同时,将所述电子锁确定为上锁状态。

在第一方面的第四种可能实现方式中,所述将所述上锁密码提供给所述终端,包括:

通过配置的显示模块,显示所述上锁密码,所述终端用于获取用户查看所述上锁密码后输入的所述上锁密码;或者,

通过配置的近距离无线通信模块,向所述终端发送所述上锁密码。

第二方面,提供了一种密码生成方法,应用于服务器中,所述方法包括:

随机生成第一数据串;

采用第一预设算法,对所述第一数据串和电子锁的锁标识进行计算,得到第二数据串;

将所述第一数据串和所述第二数据串组成开锁密码;

将所述开锁密码发送给终端,所述终端用于将所述开锁密码提供给所述电子锁,所述电子锁用于采用所述第一预设算法,对所述第一数据串和所述电子锁的锁标识进行计算,得到第三数据串,确定所述第三数据串与所述第二数据串相同时,开启所述电子锁。

在第二方面的第一种可能实现方式中,所述将所述第一数据串和所述第二数据串组成开锁密码之后,所述方法还包括:

确定所述开锁密码与已记录的至少一个历史开锁密码均不相同时,执行所述将所述开锁密码发送给终端的步骤;或者,

确定所述开锁密码与已记录的任一个历史开锁密码相同时,取消将所述开锁密码发送给终端的步骤,随机生成另一数据串。

在第二方面的第二种可能实现方式中,所述将所述开锁密码发送给终端之后,所述方法还包括:

接收所述终端发送的上锁密码,所述电子锁用于当检测到对所述电子锁的锁定操作时,采用第二预设算法,对所述开锁密码和所述锁标识进行计算,得到所述上锁密码,并提供给所述终端;

采用所述第二预设算法,对所述开锁密码和所述锁标识进行计算,得到验证密码;

确定所述上锁密码和所述验证密码相同时,将所述电子锁确定为上锁状态。

第三方面,提供了一种密码生成方法,应用于终端中,所述方法包括:

接收服务器发送的开锁密码,所述服务器用于随机生成第一数据串,采用第一预设算法,对所述第一数据串和电子锁的锁标识进行计算,得到第二数据串,将所述第一数据串和所述第二数据串组成所述开锁密码;

将所述开锁密码提供给所述电子锁,所述电子锁用于获取所述开锁密码,采用所述第一预设算法,对所述第一数据串和所述电子锁的锁标识进行计算,得到第三数据串;确定所述第三数据串与所述第二数据串相同时,开启所述电子锁。

在第三方面的第一种可能实现方式中,所述将所述开锁密码提供给所述电子锁,包括:

显示所述开锁密码,所述电子锁用于通过配置的输入模块,获取用户查看所述开锁密码后输入的所述上锁密码;或者,

通过配置的近距离无线通信模块,向所述电子锁发送所述开锁密码,所述电子锁用于通过配置的近距离无线通信模块,接收所述开锁密码。

在第三方面的第二种可能实现方式中,所述将所述开锁密码提供给所述电子锁之后,所述方法还包括:

获取所述电子锁提供的上锁密码,所述电子锁用于当检测到对所述电子锁的锁定操作时,采用第二预设算法,对所述开锁密码和所述锁标识进行计算,得到所述上锁密码;

将所述上锁密码发送给所述服务器,所述服务器用于采用所述第二预设算法,对所述开锁密码和所述锁标识进行计算,得到验证密码,确定所述上锁密码与所述验证密码相同时,将所述电子锁确定为上锁状态。

在第三方面的第三种可能实现方式中,所述获取所述电子锁提供的上锁密码,包括:

获取用户输入的所述上锁密码,所述上锁密码由用户查看所述电子锁配置的显示模块显示的所述上锁密码后得到;或者,

接收所述电子锁通过配置的近距离无线通信模块发送的所述上锁密码。

第四方面,提供了一种密码生成装置,应用于电子锁中,所述密码生成装置用于执行上述第一方面提供的方法。

第五方面,提供了一种密码生成装置,应用于服务器中,所述密码生成装置用于执行上述第二方面提供的方法。

第六方面,提供了一种密码生成装置,应用于终端中,所述密码生成装置用于执行上述第三方面提供的方法。

本公开实施例提供的技术方案带来的有益效果是:

本公开实施例提供的密码生成方法、装置、存储介质、电子锁、服务器及终端,电子锁每次的开锁密码中第一数据串是随机生成的,第二数据串是根据第一数据串计算得到的,可以保证电子锁的开锁密码不是固定的,因此用户每次要使用公共资源时,必须通过服务器获取当前的开锁密码才能开启电子锁,便于对公共资源进行控制,避免了用户将公共资源占为己有的情况,防止公共资源的丢失,避免了安全隐患,提高了安全性。

进一步地,服务器可以当确定开锁密码为历史开锁密码时,重新生成开锁密码,防止用户采用之前获知的开锁密码再次开启密码锁的情况,提高了安全性。

进一步地,由于第一数据串是随机生成的,第一预设算法由服务器和电子锁存储,那么,确定开锁密码的数据和算法对于用户均是未知的,加大了用户破解开锁密码的难度,提高了安全性。

进一步地,由于电子锁的锁标识与电子锁唯一对应,不同电子锁的锁标识不同,通过采用锁标识为对应的电子锁生成开锁密码,对于任意两个电子锁来说,即使为这两个电子锁随机生成的第一数据串相同,由于这两个电子锁的锁标识不同,则为这两个电子锁计算得到的第二数据串也就不同,则这两个电子锁的开锁密码也会不同,避免了不同电子锁开锁密码相同的情况,提高了安全性。

进一步地,终端得到上锁密码时,会将其发送给服务器,服务器得到开锁密码后,才可能确定电子锁为锁定状态,而当终端未得到上锁密码时,服务器仍会保持电子锁为开锁状态,解决了相关技术中电子锁处于开锁状态时用户就能够通知服务器已经锁定电子锁的缺陷。并且,当电子锁确实处于锁定状态时,才会向终端提供上锁密码,服务器会验证上锁密码是否正确,当上锁密码正确时才会确定电子锁为锁定状态,极大地提高了安全性。

进一步地,电子锁无需和服务器进行连接,也就无需配置远距离无线通信模块,节约了电子锁的成本和耗电。

附图说明

图1是本公开实施例提供的一种实施环境的示意图;

图2a是本公开实施例提供的一种密码生成方法的流程图;

图2b是本公开实施例提供的一种显示开锁密码的示意图;

图2c是相关技术提供的一种触发停止使用指令的示意图;

图2d是本公开实施例提供的一种触发停止使用指令的示意图;

图3是本公开实施例提供的一种密码生成装置的结构示意图;

图4是本公开实施例提供的一种密码生成装置的结构示意图;

图5是本公开实施例提供的一种密码生成装置的结构示意图;

图6是本公开实施例提供的一种密码锁的结构示意图;

图7是本公开实施例提供的一种服务器的结构示意图;

图8是本公开实施例提供的一种终端的结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。

参见图1,其示出了一种实施环境的示意图,该实施环境中包括终端101、服务器102、和电子锁103。

当用户希望开启电子锁103时,终端101用于向服务器102请求开锁密码,服务器102用于为电子锁103动态生成开锁密码,电子锁103用于验证开锁密码,并当验证通过时开启。其中,终端101可以为手机、平板电脑、电脑、可穿戴设备等,服务器用于管理电子锁103,可以为一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。

针对这三种设备之间的交互方式,终端101与服务器102会通过建立的连接进行交互,连接方式包括无线保真(wirelessfidelity,wi-fi)连接、数据网络连接等;终端101与电子锁103可以通过连接或者非连接的方式进行交互;服务器102与电子锁103无需连接,由终端101充当转发设备,在服务器102与电子锁103之间转发两者需要交互的内容,当然,服务器102也可以与电子锁103连接来进行交互。

其中,关于终端101与电子锁103的交互方式,连接的方式是指电子锁103通过配置的近距离无线通信模块与终端101建立无线连接,非连接的方式是指电子锁103通过配置的显示模块或者输入模块和终端101进行交互:当电子锁103要向终端101提供某种信息时,会通过显示模块显示该信息,用户查看该信息后会在终端101上输入相应的信息;当终端101要向电子锁103提供某种信息时,会显示该信息,用户查看该信息后会通过输入模块输入相应的信息。

其中,该近距离无线通信模块可以为低功耗蓝牙(bluetoothlowenergy,ble)模块,近场通信(nearfieldcommunication,nfc)模块等,该显示模块可以为显示屏幕,输入模块可以为键盘、按钮、滚轮等。

本公开实施例可以应用于用户使用公共资源的场景中,公共资源可以包括共享单车、共享电动车、共享雨伞、门等。公共资源会配置电子锁以保证安全,当电子锁为锁定状态时,用户无法正常使用公共资源,需要得到开锁密码从而开启电子锁,才能正常使用公共资源。其中,该开锁密码由服务器动态地为电子锁生成,而不是固定的,能够保证公共资源的安全。

图2a是根据一示例性实施例示出的一种密码生成方法的流程图,如图2a所示,该方法可以应用于上述实施环境中,交互主体包括电子锁、终端和服务器,包括以下步骤:

201、终端向服务器发送开锁密码请求。

当用户希望使用某个公共资源时,终端会获取该公共资源对应的公共资源标识,向服务器发送开锁密码请求,该开锁密码请求携带公共资源标识,用于通知服务器用户要使用该公共资源,并请求得到该公共资源配置的电子锁的开锁密码。

其中,针对终端获取公共资源标识的方式,公共资源可以粘贴或印刷图形码,图形码携带公共资源标识,用户可以使用终端扫描图形码,终端会从图形码中得到公共资源标识。或者,公共资源可以佩戴卡牌,卡牌上粘贴或印刷公共资源标识,用户查看该公共资源标识并在终端上触发输入操作,终端会得到输入的公共资源标识。其中,图形码可以为二维码、条形码等,公共资源标识用于确定对应的公共资源,可以是服务器为公共资源分配的编号。

202、服务器接收开锁密码请求,生成开锁密码,将开锁密码发送给终端。

服务器接收到开锁密码请求时,会解析该开锁密码请求,得到公共资源标识,获知用户要使用该公共资源标识对应的公共资源,需要开启该公共资源的电子锁,则会采用以下步骤2021-2023生成开锁密码。

2021、随机生成第一数据串。

服务器会生成n位随机数,作为第一数据串,n为不小于1的正整数,n的具体数值根据实际需求确定。进一步地,服务器可以调用随机数生成器,通过运行随机数生成器随机生成该第一数据串,该随机数生成器可以为c语言中的rand函数、srand函数等,java语言中的math.random函数、random类等,python语言中的random.random函数等。当然此处仅为示例性举例,该随机数生成器也可以为其他函数,并应用于其他计算机语言中。

2022、采用第一预设算法,对第一数据串和电子锁的锁标识进行计算,得到第二数据串。

服务器预先存储了第一预设算法,当得到第一数据串后,会获取电子锁的锁标识,采用第一预设算法对第一数据串和锁标识进行计算,将计算结果作为第二数据串。

其中,电子锁的锁标识用于唯一确定对应的电子锁,锁标识可以与公共资源标识对应,服务器会预先存储公共资源标识和锁标识之间的对应关系,根据公共资源标识查询对应关系,确定锁标识。或者,公共资源可以和其配置的电子锁共用同一个标识,则服务器可以直接将公共资源标识作为锁标识。

其中,第一预设算法可以为求和值算法、求差值算法、求乘积算法、求商值算法、线性组合算法、求指数算法、求对数算法等,本实施例对第一预设算法的具体内容不做限定,只需保证服务器和电子锁存储了相同的第一预设算法即可。例如,当第一预设算法为求和值算法时,服务器会计算第一数据串和锁标识的和值,将和值作为第二数据串。

另外,第一预设算法还可以指示将第一数据串和锁标识连接以构成第二数据串,例如,假设第一数据串包含n位数据,锁标识包含p位数据(p为不小于1的正整数),则由第一预设算法得到的第二数据串包含n+p位数据,其中,该第二数据串的前n位数据为第一数据串,后p位数据为锁标识。或者,该第二数据串的前p位数据为锁标识,后n位数据为第一数据串。

2023、将第一数据串和第二数据串组成开锁密码。

以第一数据串包含n位数据,第二数据串包含m位数据为例,开锁密码会包含n+m位数据,其中,开锁密码的前n位数据为第一数据串,后m位数据为第二数据串。或者,开锁密码的前m位数据为第二数据串,后n位数据为第一数据串。

当服务器将开锁密码发送给终端后,会记录该开锁密码,以便后续可以根据该开锁密码对上锁密码进行验证。

需要说明的第一点是,本实施例中,服务器组成开锁密码后,可以直接将该开锁密码发送给终端,在另一实施例中,服务器组成开锁密码后,可以先判断该开锁密码是否为该电子锁的历史开锁密码,当确定开锁密码不为历史开锁密码时,再将开锁密码发送给终端,当确定开锁密码为历史开锁密码时,重新随机生成数据串,直到组成的开锁密码不为历史开锁密码时,将开锁密码发送给终端。

具体地,服务器预先记录了至少一个历史开锁密码,当组成了一个开锁密码后,会获取该至少一个历史开锁密码,当确定开锁密码与已记录的至少一个历史开锁密码均不相同时,再将开锁密码发送给终端,而当确定开锁密码与已记录的任一个历史开锁密码相同时,取消将开锁密码发送给终端,随机生成另一数据串,以便再次组成另一开锁密码。

其中,历史开锁密码可以指记录时间点早于当前时间点的任一开锁密码。进一步地,服务器可以从已记录的至少一个历史开锁密码中选取记录时间点位于指定时间段内的历史开锁密码,将这种历史开锁密码和组成的开锁密码进行判断。其中,该指定时间段的结束点为当前时间点,起始点根据当前时间点和统计周期确定,该统计周期为一天、一周、一个月或者根据开发人员的设置操作确定。举例来说,当前时刻为6月29日10:00,统计周期为一周时,服务器选取的历史开锁密码指在6月22日10:00到6月29日10:00期间记录的历史开锁密码。

或者,服务器可以对已记录的至少一个历史开锁密码按照记录时间点从晚到早的顺序排序,并从该至少一个历史开锁密码中选取排在前k位的历史开锁密码,将这种历史开锁密码和组成的开锁密码进行判断,那么,服务器无需判断开锁密码是否与已记录的所有历史开锁密码相同,只需判断开锁密码是否与最近记录的k个历史开锁密码相同即可。其中,k为不小于1的正整数,k的具体数值根据实际需求确定。举例来说,假设服务器为该密码锁总共生成过1000个历史开锁密码,而k为100,服务器选取的历史开锁密码指这1000个历史开锁密码中最晚记录的100个历史开锁密码。

需要说明的第二点是,实际应用中,用户使用公共资源通常为计时性消费,为了统计用户对公共资源的使用时长以便后续根据该时长进行扣费操作,服务器可以在将开锁密码发送给终端时,确定当前时间点,将该当前时间点记录为公共资源的使用起始时间点。

203、终端接收开锁密码,将开锁密码提供给密码锁。

终端可以采用以下步骤2031或步骤2032,将开锁密码提供给密码锁。

2031、终端显示开锁密码。

例如,参见图2b,终端在显示开锁密码时,还可以显示第一提示信息,从而引导用户将开锁密码输入到电子锁中,例如第一提示信息可以为“请按照显示的密码按下单车的按钮以解锁单车”。

2032、终端通过配置的近距离无线通信模块,向电子锁发送开锁密码。

终端可以显示第二提示信息,从而引导用户开启终端配置的近距离无线通信模块,以便终端通过近距离无线通信模块与电子锁建立无线连接,通过无线连接向电子锁发送开锁密码,例如第二提示信息可以为“请开启蓝牙功能以解锁单车”。

204、电子锁获取待验证的开锁密码。

电子锁可以采用以下步骤2041或步骤2042,得到终端提供的开锁密码。

2041、电子锁通过配置的输入模块,获取用户输入的开锁密码。

本步骤与上述步骤2031对应,当用户查看终端显示的开锁密码后,会在电子锁的输入模块上触发输入操作,电子锁检测到该输入操作时,会获取输入的开锁密码。

2042、电子锁通过配置的近距离无线通信模块,接收终端发送的开锁密码。

本步骤与上述步骤2032对应,电子锁会通过与终端的无线连接,接收终端发送的开锁密码。

205、电子锁采用第一预设算法,对第一数据串和电子锁的锁标识进行计算,得到第三数据串,确定第三数据串与第二数据串相同时,开启电子锁。

电子锁得到开锁密码后,会获取开锁密码中的第一数据串和第二数据串,并确定该电子锁的锁标识,采用预先存储的第一预设算法,对第一数据串和锁标识进行计算,将计算结果作为第三数据串,判断第三数据串和第二数据串是否相同,根据判断结果确定是否开启电子锁。

针对电子锁获取第一数据串和第二数据串的过程,电子锁可以和服务器约定:开锁密码的前n位数据为第一数据串,后m位数据为第二数据串,则电子锁会读取开锁密码中的前n位数据,作为第一数据串,读取开锁密码中的后m位数据,作为第二数据串。当然,电子锁也可以和服务器约定:开锁密码的前m位数据为第二数据串,后n位数据为第一数据串,则电子锁会读取开锁密码中的前m位数据,作为第二数据串,读取开锁密码中的后n位数据,作为第一数据串。

电子锁计算得到第三数据串的过程与上述步骤2022中服务器计算得到第二数据串的过程类似。那么,由于电子锁和服务器在计算过程中采用的算法和数据均相同,因此得到的计算结果也会是相同的,因此电子锁确定其计算的第三数据串与服务器计算的第二数据串相同时,确定终端提供的开锁密码即为服务器生成的开锁密码,因此验证开锁密码通过,则开启电子锁。

而在其他情况下,如果电子锁获取到的开锁密码不是通过服务器生成的,而是通过其他方式得到的,会导致电子锁计算的第三数据串与服务器计算的第二数据串不相同,此时可以确定终端提供的开锁密码不是服务器生成的开锁密码,可能是用户编造的密码,因此验证开锁密码不通过,拒绝开启密码锁。

当电子锁确定第三数据串与第二数据串相同时,会通过配置的开关模块开启电子锁,并存储开锁密码,以便后续根据开锁密码生成上锁密码。

需要说明的是,本实施例中验证开锁密码通过的条件为第三数据串与第二数据串相同,在另一实施例中,为了防止用户采用上一次获知的开锁密码开启电子锁,验证开锁密码通过的条件可以为第三数据串与第二数据串相同,且开锁密码不为历史开锁密码,也就是,当确定第三数据串与第二数据串相同,且开锁密码与已记录的至少一个历史开锁密码均不相同时,开启电子锁,而当确定第三数据串与第二数据串不同,或者当确定开锁密码与任一个历史开锁密码相同时,拒绝开启电子锁。

其中,电子锁可以在确定第三数据串与第二数据串相同之后,判断开锁密码是否为历史开锁密码。或者,当电子锁可以先判断开锁密码是否为历史开锁密码,当确定开锁密码不为历史开锁密码时再计算得到第三数据串。

206、当检测到对电子锁的锁定操作时,采用第二预设算法,对开锁密码和锁标识进行计算,得到上锁密码。

用户停止使用公共资源时,会锁定电子锁并通知服务器。在相关技术中,用户可以在终端上触发停止使用指令,终端会检测到该停止使用指令并通知服务器,服务器即会确定电子锁为锁定状态。例如,参见图2c,在用户骑共享单车的过程中,终端会显示“结束骑行”选项,用户只需点击该选项,服务器即会确定电子锁为锁定状态。然而,这种锁定电子锁的方式存在缺陷:如果用户未停止使用公共资源,电子锁仍处于开锁状态时,也可以触发该停止使用指令,导致服务器错误地确定电子锁为锁定状态,进而导致统计的公共资源使用时长小于真实时长。

为了避免这种情况,本实施例中,当电子锁检测到锁定操作,确保其已经处于锁定状态,即用户停止使用公共资源时,会生成上锁密码,将上锁密码提供给终端,终端得到上锁密码后,会将上锁密码提供给服务器,而服务器验证上锁密码正确时,才会将电子锁确定为锁定状态,因此,当用户未锁定电子锁时,终端得不到正确的上锁密码,服务器也就不会确定电子锁为锁定状态,解决了上述缺陷,保证服务器记录的电子锁的状态准确,加强对公共资源的控制。

具体地,当用户停止使用公共资源时,会对电子锁触发锁定操作,电子锁检测到锁定操作,会通过配置的开关模块锁定电子锁,并生成上锁密码,将上锁密码提供给服务器,以便通知服务器电子锁已经为锁定状态。

其中,针对生成上锁密码的过程,电子锁会存储第二预设算法,采用第二预设算法对开锁密码和锁标识进行计算,计算结果即为上锁密码,该第二预设算法与第一预设算法类似,同样可以为求和值算法、求差值算法、求乘积算法、求商值算法、线性组合算法、求指数算法、求对数算法等,本实施例对第二预设算法的具体内容不做限定,只需保证服务器和电子锁存储了相同的第二预设算法即可,另外,第二预设算法可以和第一预设算法相同。

207、电子锁将上锁密码提供给终端。

电子锁可以采用以下步骤2071或步骤2072,将上锁密码提供给终端。

2071、通过配置的显示模块,显示上锁密码。

电子锁在显示上锁密码时,还可以显示第三提示信息,从而引导用户将上锁密码输入到终端中,例如第三提示信息可以为“请在手机上输入显示的密码以对单车上锁”。

2072、通过配置的近距离无线通信模块,向终端发送上锁密码。

电子锁可以显示第四提示信息,从而引导用户开启终端配置的近距离无线通信模块,以便终端通过近距离无线通信模块与电子锁建立无线连接,例如第四提示信息可以为“请开启蓝牙功能以对单车上锁”。

208、终端获取电子锁提供的上锁密码,将上锁密码发送给服务器。

终端可以采用以下步骤2081或步骤2082,得到电子锁提供的开锁密码。

2081、获取用户输入的上锁密码。

本步骤与上述步骤2071对应,当用户查看电子锁显示的上锁密码后,会在终端上触发输入操作,终端检测到该输入操作时,会获取输入的上锁密码。例如,参见图2d,用户可以输入上锁密码,再点击“结束骑行”选项以触发停止使用指令,则终端会检测到停止使用指令,并获取已输入的上锁密码。

2082、接收电子锁通过配置的近距离无线通信模块发送的上锁密码。

本步骤与上述步骤2072对应,终端会通过与电子锁的无线连接,接收电子锁发送的上锁密码。

209、服务器接收终端发送的上锁密码,采用第二预设算法,对开锁密码和锁标识进行计算,得到验证密码,确定上锁密码与验证密码相同时,将电子锁确定为上锁状态。

服务器接收到上锁密码时,会获取之前向该终端发送的开锁密码,和上述步骤206类似,同样采用第二预设算法对开锁密码和锁标识进行计算,得到验证密码。当确定上锁密码与验证密码相同时,可以确定上锁密码正确,用户已经锁定电子锁,则将电子锁确定为上锁状态。而当上锁密码与验证密码不相同时,可以确定上锁密码不正确,可能出现了用户在未锁定该电子锁的情况下在终端上触发了停止使用指令的情况,因此仍将电子锁保持为开锁状态。

210、服务器向终端返回确认信息。

服务器确定电子锁为上锁状态时,可以向终端返回确认信息,该确认信息用于通知终端已经电子锁已经成功上锁,终端可以显示该确认信息,以便用户及时获知电子锁已经成功上锁。另外,该确认信息还可以携带本次使用公共资源的费用,以便用户获知消费情况。当然,该步骤仅为可选步骤。

需要说明的第一点是,服务器可以在将电子锁确定为上锁状态时,确定当前时间点,将该当前时间点记录为公共资源的使用结束时间点,根据已记录的使用起始时间点和该使用结束时间点,确定用户对公共资源的使用时长,根据公共资源单位时长的使用费用以及使用时长,计算用户本次使用公共资源的费用,从终端绑定的账户中扣除该费用。

需要说明的第二点是,为了便于服务器获知公共资源的位置信息,终端向服务器发送开锁密码请求时,可以获取终端当前所处的位置信息,在开锁密码请求中携带该位置信息,服务器会从开锁密码请求获取位置信息,记录为公共资源开锁时的位置信息。同理地,终端向服务器发送上锁密码时,可以获取终端当前所处的位置信息并将该位置信息和上锁密码打包发送,则服务器会得到该位置信息,记录为公共资源上锁时的位置信息。

需要说明的第三点是,终端可以安装和服务器关联的指定客户端,通过运行该指定客户端执行本实施例中终端所执行的步骤。

需要说明的第四点是,相关技术中,电子锁会配置远距离无线通信模块以和服务器进行交互,而远距离无线通信模块的成本通常较高,并且较为耗电。而本实施例中,由终端在电子锁和服务器之间转发两者需要交互的内容,电子锁无需和服务器进行连接,也就无需配置远距离无线通信模块,节约了电子锁的成本和耗电。

本实施例提供的方法,电子锁每次的开锁密码中第一数据串是随机生成的,第二数据串是根据第一数据串计算得到的,可以保证电子锁的开锁密码不是固定的,因此用户每次要使用公共资源时,必须通过服务器获取当前的开锁密码才能开启电子锁,便于对公共资源进行控制,避免了用户将公共资源占为己有的情况,防止公共资源的丢失,避免了安全隐患,提高了安全性。

进一步地,服务器可以当确定开锁密码为历史开锁密码时,重新生成开锁密码,防止用户采用之前获知的开锁密码再次开启密码锁的情况,提高了安全性。

进一步地,由于第一数据串是随机生成的,第一预设算法由服务器和电子锁存储,那么,确定开锁密码的数据和算法对于用户均是未知的,加大了用户破解开锁密码的难度,提高了安全性。

进一步地,由于电子锁的锁标识与电子锁唯一对应,不同电子锁的锁标识不同,通过采用锁标识为对应的电子锁生成开锁密码,对于任意两个电子锁来说,即使为这两个电子锁随机生成的第一数据串相同,由于这两个电子锁的锁标识不同,则为这两个电子锁计算得到的第二数据串也就不同,则这两个电子锁的开锁密码也会不同,避免了不同电子锁开锁密码相同的情况,提高了安全性。

进一步地,终端得到上锁密码时,会将其发送给服务器,服务器得到开锁密码后,才可能确定电子锁为锁定状态,而当终端未得到上锁密码时,服务器仍会保持电子锁为开锁状态,解决了相关技术中电子锁处于开锁状态时用户就能够通知服务器已经锁定电子锁的缺陷。并且,当电子锁确实处于锁定状态时,才会向终端提供上锁密码,服务器会验证上锁密码是否正确,当上锁密码正确时才会确定电子锁为锁定状态,极大地提高了安全性。

进一步地,电子锁无需和服务器进行连接,也就无需配置远距离无线通信模块,节约了电子锁的成本和耗电。

以下将以用户使用共享单车的实际操作为例进行说明,具体包括以下步骤:

(1)、用户想要骑某辆共享单车,使用终端扫描共享单车上的二维码,终端解析二维码,得到共享单车编号。或者用户查看共享单车佩戴的车牌,车牌上印刷着共享单车编号,用户在终端上输入共享单车编号。

(2)、终端向服务器发送携带共享单车编号的开锁密码请求。服务器接收开锁密码请求,生成开锁密码,将开锁密码发送给终端。另外,服务器还可以记录当前时间为骑行起始时间点。

(3)、终端接收开锁密码,显示开锁密码,用户查看开锁密码后,按照该开锁密码按下共享单车电子锁的按钮,以便电子锁得到开锁密码。或者用户可以开启终端的蓝牙功能,终端与电子锁建立蓝牙连接,通过该蓝牙连接将开锁密码发送给电子锁。

(4)、电子锁对终端提供的开锁密码进行验证,验证通过时开启电子锁,用户即可骑走共享单车。

(5)、用户骑行结束,锁定共享单车的电子锁,电子锁生成上锁密码,并在显示屏幕上显示上锁密码,用户查看上锁密码后在终端输入上锁密码。或者用户会开启终端的蓝牙功能,终端和电子锁建立蓝牙连接,电子锁通过蓝牙连接向终端发送上锁密码。

(6)、终端向服务器发送上锁密码,服务器接收上锁密码,对上锁密码进行验证,当验证通过时,确定共享单车为锁定状态。并且,服务器可以记录当前时间为骑行结束时间点,计算用户的骑行时长,根据共享单车单位时长的骑行费用和骑行时长,计算用户本次骑共享单车的费用,对终端绑定的账户进行扣费操作。

图3是根据一示例性实施例示出的一种密码生成装置的结构示意图,应用于电子锁中,如图3所示,该装置包括:获取模块301、计算模块302和开关模块303。

获取模块301,用于获取待验证的开锁密码,该开锁密码由第一数据串和第二数据串组成,该第一数据串由服务器随机生成,该第二数据串由该服务器采用第一预设算法对该第一数据串和该电子锁的锁标识进行计算得到;

计算模块302,用于采用该第一预设算法,对该第一数据串和该电子锁的锁标识进行计算,得到第三数据串;

开关模块303,用于确定该第三数据串与该第二数据串相同时,开启该电子锁。

在一种可能的实现方式中,该获取模块301,还用于通过配置的输入模块,获取用户输入的开锁密码,该开锁密码由用户查看终端显示的该开锁密码后得到,该开锁密码由该服务器发送给该终端;或者,

该获取模块301,还用于通过配置的近距离无线通信模块,接收终端发送的开锁密码,该开锁密码由该服务器发送给该终端。

在一种可能的实现方式中,该开关模块303,还用于确定该第三数据串与该第二数据串相同,且该开锁密码与已记录的至少一个历史开锁密码均不相同时,开启该电子锁。

在一种可能的实现方式中,该装置还包括:

该计算模块302,还用于当检测到对该电子锁的锁定操作时,采用第二预设算法,对该开锁密码和该锁标识进行计算,得到上锁密码;

提供模块,用于将该上锁密码提供给该终端,该终端用于将该上锁密码发送给该服务器,该服务器用于采用该第二预设算法,对该开锁密码和该锁标识进行计算,得到验证密码,确定该上锁密码与该验证密码相同时,将该电子锁确定为上锁状态。

在一种可能的实现方式中,该提供模块,还用于通过配置的显示模块,显示该上锁密码,该终端用于获取用户查看该上锁密码后输入的该上锁密码;或者,

该提供模块,还用于通过配置的近距离无线通信模块,向该终端发送该上锁密码。

图4是根据一示例性实施例示出的一种密码生成装置的结构示意图,应用于服务器中,如图4所示,该装置包括:生成模块401、计算模块402、组成模块403和发送模块404。

生成模块401,用于随机生成第一数据串;

计算模块402,用于采用第一预设算法,对该第一数据串和电子锁的锁标识进行计算,得到第二数据串;

组成模块403,用于将该第一数据串和该第二数据串组成开锁密码;

发送模块404,用于将该开锁密码发送给终端,该终端用于将该开锁密码提供给该电子锁,该电子锁用于采用该第一预设算法,对该第一数据串和该电子锁的锁标识进行计算,得到第三数据串,确定该第三数据串与该第二数据串相同时,开启该电子锁。

在一种可能的实现方式中,该发送模块404,还用于确定该开锁密码与已记录的至少一个历史开锁密码均不相同时,执行该将该开锁密码发送给终端的步骤;或者,

该发送模块404,还用于确定该开锁密码与已记录的任一个历史开锁密码相同时,取消将该开锁密码发送给终端的步骤;

该生成模块401,还用于随机生成另一数据串。

在一种可能的实现方式中,该装置还包括:

接收模块,用于接收该终端发送的上锁密码,该电子锁用于当检测到对该电子锁的锁定操作时,采用第二预设算法,对该开锁密码和该锁标识进行计算,得到该上锁密码,并提供给该终端;

该计算模块402,还用于采用该第二预设算法,对该开锁密码和该锁标识进行计算,得到验证密码;

确定模块,用于确定该上锁密码和该验证密码相同时,将该电子锁确定为上锁状态。

图5是根据一示例性实施例示出的一种密码生成装置的结构示意图,应用于终端中,如图5所示,该装置包括:接收模块501和提供模块502。

接收模块501,用于接收服务器发送的开锁密码,该服务器用于随机生成第一数据串,采用第一预设算法,对该第一数据串和电子锁的锁标识进行计算,得到第二数据串,将该第一数据串和该第二数据串组成该开锁密码;

提供模块502,用于将该开锁密码提供给该电子锁,该电子锁用于获取该开锁密码,采用该第一预设算法,对该第一数据串和该电子锁的锁标识进行计算,得到第三数据串;确定该第三数据串与该第二数据串相同时,开启该电子锁。

在一种可能的实现方式中,该提供模块502,还用于显示该开锁密码,该电子锁用于通过配置的输入模块,获取用户查看该开锁密码后输入的该上锁密码;或者,

该提供模块502,还通过配置的近距离无线通信模块,向该电子锁发送该开锁密码,该电子锁用于通过配置的近距离无线通信模块,接收该开锁密码。

在一种可能的实现方式中,该装置还包括:

获取模块,用于获取该电子锁提供的上锁密码,该电子锁用于当检测到对该电子锁的锁定操作时,采用第二预设算法,对该开锁密码和该锁标识进行计算,得到该上锁密码;

发送模块,用于将该上锁密码发送给该服务器,该服务器用于采用该第二预设算法,对该开锁密码和该锁标识进行计算,得到验证密码,确定该上锁密码与该验证密码相同时,将该电子锁确定为上锁状态。

在一种可能的实现方式中,该获取模块,还用于获取用户输入的该上锁密码,该上锁密码由用户查看该电子锁配置的显示模块显示的该上锁密码后得到;或者,

该获取模块,还用于接收该电子锁通过配置的近距离无线通信模块发送的该上锁密码。

上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。

需要说明的是:上述实施例提供的密码生成装置在生成密码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将电子锁、服务器和终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的密码生成装置与密码生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本公开实施例提供的一种电子锁的结构示意图,参见图6,该电子锁包括:处理器601、存储器602和开关模块603,所述开关模块603用于开启或者锁定所述电子锁,所述存储器602中存储有至少一条指令,所述指令由所述处理器601加载并通过所述开关模块603执行上述电子锁所执行的操作。

其中,该处理器601可以为微控制器(microcontrollerormicrocontrollerunit,mcu)。

在一种可能的实现方式中,该电子锁还可以包括近距离无线通信模块以执行上述电子锁和终端交互所执行的操作,该近距离无线通信模块可以为ble模块或者nfc模块。

在一种可能的实现方式中,该电子锁还可以包括显示模块或输入模块以执行上述电子锁和终端交互所执行的操作,该显示模块可以为显示屏幕,该输入模块可以为键盘、按钮、滚轮等。

在一种可能的实现方式中,该电子锁还可以包括电池,以维持电子锁的正常运行。

图7是本公开实施例提供的一种服务器的结构示意图,参见图7,该服务器包括:接收器701、发射器702、存储器703和处理器704,该接收器701、该发射器702和该存储器703分别与该处理器704连接,该存储器703存储有程序代码,该处理器704用于调用该程序代码,执行上述服务器所执行的操作。

图8是本公开实施例提供的一种终端的结构示意图,参见图8,该终端包括:接收器801、发射器802、存储器803和处理器804,该接收器801、该发射器802和该存储器803分别与该处理器804连接,该存储器803存储有程序代码,该处理器804用于调用该程序代码,执行上述终端所执行的操作。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本公开的可选实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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