一种认证时间戳的确定方法、装置及电子设备与流程

文档序号:21200057发布日期:2020-06-23 19:12阅读:365来源:国知局
一种认证时间戳的确定方法、装置及电子设备与流程

本发明涉及视频监控系统技术领域,特别是涉及一种认证时间戳的确定方法、装置及电子设备。



背景技术:

onvif(opennetworkvideointerfaceforum,开放型网络视频接口论坛)是一种基于公开,且开放的原则制定的开放性的行业标准,主要为网络视频设备之间的信息交换定义通用协议,包括装置搜寻、实时视频、音频、元数据和控制信息等。

作为一种设备接入的标准规范,onvif协议在安防行业中发挥着越来越重要的作用。大量厂家使用onvif协议来规范自身所生产的摄像机、录像机等监控设备产品,这些设备可以被称为onvif设备。

onvif设备在接入视频监控管理平台(或硬盘录像机)等接入设备时,需要对接入设备进行安全认证,在认证成功时,实现onvif设备与接入设备的正常接入。

其中,onvif设备在对接入设备进行安全认证时,除了对接入设备发送的onvif设备的用户名和密码进行检验,还会对接入设备发送的认证时间戳进行校验。具体的,当作为接入请求发起方的接入设备发送的认证时间戳与onvif设备的本地时间相差过大时,则会认证失败,导致接入异常。

但是,由于接入设备发送的认证时间戳可能受到跨时区、夏令时等原因的影响,使得接入设备发送的认证时间戳和onvif设备的本地时间相差过大,并且,由于不同的onvif设备和接入设备的出厂默认时间可能各不相同,也会使得接入设备发送的认证时间戳和onvif设备的本地时间相差过大,因此,基于上述原因可能导致onvif设备与接入设备的接入异常。

基于此,亟需一种认证时间戳确定方法,以使得接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。



技术实现要素:

本发明实施例的目的在于提供一种认证时间戳的确定方法、装置、电子设备及计算机可读存储介质,以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

具体技术方案如下:

第一方面,本发明实施例提供了一种认证时间戳的确定方法,应用于接入设备,所述方法包括:

当满足确定认证时间戳的触发条件时,确定所述接入设备当前时刻对应的协调世界时间utc秒数;其中,所述utc秒数为:从epoch时间(特定的时间,1970年1月1日00:00:00)开始到所述当前时刻经过的秒数;

从预设的关于onvif设备与时间差的对应关系中,确定待接入开放型网络视频接口论坛onvif设备对应的目标时间差;其中,所述对应关系中的每个时间差为:同一时刻下,该时间差对应的onvif设备与所述接入设备之间的utc秒数差值;

基于所述接入设备当前时刻对应的utc秒数和所述目标时间差,确定所述待接入onvif设备对应的utc秒数;

将所述待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳。

可选的,一种具体实现方式,所述确定所述接入设备当前时刻对应的协调世界时间utc秒数的步骤,包括:

基于time()接口,确定所述接入设备当前时刻对应的utc秒数;其中,所述time()接口为用于获取utc秒数的接口;

或,

获取所述接入设备当前时刻对应的utc时间;通过_mkgmtime接口,将所获取的utc时间转换为当前时刻对应的utc秒数。

可选的,一种具体实现方式,所述基于time()接口,确定所述接入设备当前时刻对应的utc秒数的步骤,包括:

通过time()接口获取所述接入设备当前时刻对应的utc秒数,将所获取的utc秒数,作为当前时刻对应的utc秒数;

或,

通过time()接口获取所述接入设备当前时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间,作为当前时间;通过_mkgmtime接口将所述当前时间转换为对应的utc秒数,作为当前时刻对应的utc秒数。

可选的,一种具体实现方式,所述将所述待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳的步骤,包括:

通过gmtime接口,将所述待接入onvif设备对应的utc秒数转换为structtm结构的时间;

将转换得到的时间转换为时间戳字符串,作为认证时间戳。

可选的,一种具体实现方式,所述待接入onvif设备对应的目标时间差为:同一时刻下,所述待接入onvif设备对应的utc秒数减去所述接入设备对应的utc秒数的差值,或者,同一时刻下,所述接入设备对应的utc秒数减去所述待接入onvif设备对应的utc秒数的差值;

当所述待接入onvif设备对应的目标时间差为:同一时刻下,所述待接入onvif设备对应的utc秒数减去所述接入设备对应的utc秒数的差值时,所述基于所述接入设备当前时刻对应的utc秒数和所述目标时间差,确定所述待接入onvif设备对应的utc秒数的步骤,包括:

计算所述当前时刻对应的utc秒数与所述目标时间差的和值,将计算得到的和值确定为所述待接入onvif设备对应的utc秒数。

当所述待接入onvif设备对应的目标时间差为:同一时刻下,所述接入设备对应的utc秒数减去所述待接入onvif设备对应的utc秒数的差值时;所述基于所述接入设备当前时刻对应的utc秒数和所述目标时间差,确定所述待接入onvif设备对应的utc秒数的步骤,包括:

计算所述当前时刻对应的utc秒数减去所述目标时间差的差值,将计算得到的差值确定为所述待接入onvif设备对应的utc秒数。

第二方面,本发明实施例提供了一种认证时间戳的确定装置,应用于接入设备,所述装置包括:

第一秒数确定模块,用于当满足确定认证时间戳的触发条件时,确定所述接入设备当前时刻对应的协调世界时间utc秒数;其中,所述utc秒数为:从epoch时间开始到所述当前时刻经过的秒数;

时间差确定模块,用于从预设的关于onvif设备与时间差的对应关系中,确定待接入开放型网络视频接口论坛onvif设备对应的目标时间差;其中,所述对应关系中的每个时间差为:同一时刻下,该时间差对应的onvif设备与所述接入设备之间的utc秒数差值;

第二秒数确定模块,用于基于所述接入设备当前时刻对应的utc秒数和所述目标时间差,确定所述待接入onvif设备对应的utc秒数;

时间戳确定模块,用于将所述待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳。

可选的,一种具体实现方式,所述第一秒数确定模块包括:

第一确定子模块,用于基于time()接口,确定所述接入设备当前时刻对应的utc秒数;其中,所述time()接口为用于获取utc秒数的接口;

或,

第二确定子模块,用于获取所述接入设备当前时刻对应的utc时间;通过_mkgmtime接口,将所获取的utc时间转换为当前时刻对应的utc秒数。

可选的,一种具体实现方式,所述第一确定子模块具体用于:

通过time()接口获取所述接入设备当前时刻对应的utc秒数,将所获取的utc秒数,作为当前时刻对应的utc秒数;

或,

通过time()接口获取所述接入设备当前时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间,作为当前时间;通过_mkgmtime接口将所述当前时间转换为对应的utc秒数,作为当前时刻对应的utc秒数。

可选的,一种具体实现方式,所述时间戳确定模块具体用于:通过gmtime接口,将所述待接入onvif设备对应的utc秒数转换为structtm结构的时间;将转换得到的时间转换为时间戳字符串,作为认证时间戳。

可选的,一种具体实现方式,所述待接入onvif设备对应的目标时间差为:同一时刻下,所述待接入onvif设备对应的utc秒数减去所述接入设备对应的utc秒数的差值,或者,同一时刻下,所述接入设备对应的utc秒数减去所述待接入onvif设备对应的utc秒数的差值

所述第二秒数确定模块具体用于:当所述待接入onvif设备对应的目标时间差为:同一时刻下,所述待接入onvif设备对应的utc秒数减去所述接入设备对应的utc秒数的差值时,计算所述当前时刻对应的utc秒数与所述目标时间差的和值,将计算得到的和值确定为所述待接入onvif设备对应的utc秒数;

或者,

所述第二秒数确定模块具体用于:当所述待接入onvif设备对应的目标时间差为:同一时刻下,所述接入设备对应的utc秒数减去所述待接入onvif设备对应的utc秒数的差值时,计算所述当前时刻对应的utc秒数减去所述目标时间差的差值,将计算得到的差值确定为所述待接入onvif设备对应的utc秒数。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述第一方面提供的任一认证时间戳的确定方法的步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面提供的任一认证时间戳的确定方法的步骤。

以上可见,应用本发明实施例提供的方案,接入设备预设有关于onvif设备与时间差的对应关系。这样,在满足确定认证时间戳的触发条件时,接入设备便可以确定当前时刻对应的utc秒数,并在上述对应关系中确定待接入的onvif设备对应的目标时间差,从而基于所确定的当前时刻对应的utc秒数和目标时间差,得到待接入onvif设备对应的utc秒数。进而,便可以将所得到的待接入onvif设备对应的utc秒数转换为认证时间戳。

其中,由于utc秒数的实质是从epoch时间开始到某一时刻经过的秒数,因此,utc秒数不受跨时区、夏令时等原因的影响。这样,便可以利用utc秒数,基于统一标准对接入设备和待接入onvif设备在当前时刻的时间进行确定,并根据预设的目标时间差,对接入设备在当前时刻的时间进行调整,使其与待接入onvif设备当前时刻的本地时间同步,并根据该调整后的时间确定认证时间戳,以使得认证时间戳与待接入onvif设备当前时刻的本地时间对应的utc时间同步。这样,便可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

此外,应用本发明实施例提供的方案,由于预设有关于onvif设备与时间差的对应关系,因此,在接入设备在接入不同的待接入onvif设备时,均可以直接从上述对应关系中获取目标时间差,进而,基于目标时间差确定认证时间戳,从而不需要对接入设备或者各个onvif设备分别进行手动校时,从而提高接入设备对不同的onvif设备的兼容性,减少由于接入设备与onvif设备的时间不同步导致的认证失败,进而减少由于认证失败带来的一系列项目工程问题。并且可以节省大量的人力物力,降低接入设备与onvif设备的接入成本。

当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种认证时间戳的确定方法的流程示意图;

图2为本发明实施例提供的一种认证时间戳的确定装置的结构示意图;

图3为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在相关技术中,onvif设备在对接入设备进行安全认证时,除了对接入设备发送的onvif设备的用户名和密码进行检验,还会对接入设备发送的认证时间戳进行校验。其中,由于接入设备发送的认证时间戳受到跨时区、夏令时等原因的影响,使得接入设备发送的认证时间戳和onvif设备的本地时间相差过大,从而导致onvif设备与接入设备的接入异常。为了解决上述技术问题,本发明实施例提供了一种认证时间戳的确定方法。

为了便于更好地理解本发明实施例提供的一种认证时间戳的确定方法,下面,首先以wsse(wsseusernametoken)认证方式为例,对onvif设备对接入设备的安全认证过程进行说明,其中,wsse为webservicesecuriyt的缩写,其中文含义为:网络安全服务。

具体的,当接入设备想要接入一onvif设备时,会首先获取该onvif设备的用户名(username)和密码(password),进而,生成当前时刻的本地时间戳(datecreated),并生成一个随机数(nonce)且对该随机数进行64位编码。这样,基于上述所得到的各个信息,接入设备便可以创建一个密码摘要。

其中,创建该密码摘要的运算流程为:passworddigest(密码摘要)=base64((sha1(nonce+datecreated+password)));

其中,sha1为:securehashalgorithm,其中文含义为:安全哈希算法,是一种不可逆的加密方法。也就是说,上述密码摘要的运算流程的实质是:首先通过sha1对nonce、datecreated及password进行加密,进而,对加密得到的结果进行64位编码,从而得到一个64位的密码摘要。

接着,接入设备便可以将上述用户名、密码、随机数、本地时间戳以及密码摘要发送给该onvif设备。

则上述onvif设备在得到上述用户名、密码、随机数、本地时间戳以及密码摘要后,首先判断所获取的用户名和密码与自身的用户名和密码是否匹配;如果匹配,则判断所获取的本地时间戳与onvif设备自身的本地时间是否同步;如果同步,则利用自身的用户名、密码、本地时间以及所接收到的随机数,根据上述密码摘要的运算流程再次创建密码摘要,并判断所创建的密码摘要与所获取的密码摘要是否相同,从而,根据判断结果,确定认证结果。

其中,如果所获取的本地时间戳与onvif设备自身的本地时间不同步,则认证失败;如果所获取的本地时间戳与onvif设备自身的本地时间同步,则onvif设备在创建密码摘要时,可以使用所获取的接入设备发送的本地时间戳,也可以使用自身的本地时间,这都是合理的。

此外,在很多情况下,onvif设备确定所获取的本地时间戳与onvif设备自身的本地时间虽然不同步,但二者相差较小,符合预设时间范围,例如5秒时,也可以认为onvif设备确定所获取的本地时间戳与onvif设备自身的本地时间是匹配的,进而,执行后续的验证步骤。

当然,除上述wsse认证方式之外,onvif设备还可以采用其他的方式利用接入设备所生成的本地时间戳对接入设备进行安全认证。对此,本发明实施例不做具体限定。

其中,无论onvif设备采用何种方式利用接入设备所生成的本地时间戳对接入设备进行安全认证,均是在满足onvif设备确定所获取的本地时间戳与onvif设备自身的本地时间同步或者差值满足预设时间范围时,才可能认证成功。

下面,首先对本发明实施例提供的一种认证时间戳的确定方法进行介绍。

图1为本发明实施例提供的一种认证时间戳的确定方法的流程示意图。其中,该确定方法可以应用于任一能够与onvif设备进行接入的电子设备,例如,服务器、nvr(netvideorecorder,网络硬盘录像机)等,对此,本发明实施例不做具体限定,以下简称接入设备。

如图1所示,该确定方法可以包括如下步骤:

s101:当满足确定认证时间戳的触发条件时,确定接入设备当前时刻对应的协调世界时间utc秒数;

其中,utc秒数为:从epoch时间开始到当前时刻经过的秒数;

根据上述对onvif设备对接入设备的安全认证过程的介绍,可见,当在某个时刻,接入设备想要接入一onvif设备时,该接入设备便可以判定当前时刻满足确定认证时间戳的触发条件。进而,接入设备便可以确定自身当前时刻对应的协调世界时间utc秒数。

其中,utc秒数为:从epoch时间开始到该当前时刻经过的秒数,该epoch时间即为:utc(coordinateduniversaltime,协调世界时间)时间1970年1月1日00:00:00。具体的,可以认定utc时间与gmt(gerrnwichmeantime,格林威治时间)是一致的,即utc时间与零时区时间相同。

需要说明的是,在上述步骤s101中,接入设备可以通过多种方式确定当前时刻对应的协调世界时间utc秒数。对此,本发明实施例不做具体限定。例如,接入设备可以直接获取所在地区当前时刻的当地时间,进而,将所获取的当地时间转换为utc秒数,作为当前时刻对应的utc秒数。

可选的,一种具体实现方式中,上述步骤s101可以包括如下步骤a1:

步骤a1:基于time()接口,确定接入设备当前时刻对应的utc秒数;

其中,time()接口为用于获取utc秒数的接口;

在本实现方式中,接入设备可以利用time()接口,确定自身当前时刻对应的utc秒数。其中,time()用于获取接入设备在当前时刻的系统时间,所得到结果的数据结构为time_t,该结果表示从epoch时间到当前时刻的秒数。

其中,由于在不同的编程语言中,与time()接口功能相似的接口可以不同,因此,接入设备也可以通过其他与time接口功能相似的接口,确定自身当前时刻对应的utc秒数,这都是合理的。例如,c/c++(c/cplusplus)语言中,接入设备通过time()接口确定自身当前时刻对应的utc秒数,在java语言中,接入设备通过gettime()接口确定自身当前时刻对应的utc秒数。

具体的,接入设备可以通过多种方式执行上述步骤a1:

优选的,一种实施方式中,接入设备执行上述步骤a1的方式为:

通过time()接口获取接入设备当前时刻对应的utc秒数,将所获取的utc秒数,作为当前时刻对应的utc秒数;

由于通过time()接口所获取的结果即表示从epoch时间到当前时刻的秒数,而utc秒数表示的是从epoch时间开始到当前时刻经过的秒数;因此,在本实施方式中,接入设备可以直接通过time()接口获取自身当前时刻对应的utc秒数,将所获取的utc秒数,作为当前时刻对应的utc秒数。

优选的,另一种实施方式中,接入设备执行上述步骤a1的方式为:

通过time()接口获取接入设备当前时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间,作为当前时间;通过_mkgmtime接口将当前时间转换为对应的utc秒数,作为当前时刻对应的utc秒数。

在本实施方式中,为了进一步提高接入设备所获取的utc秒数的准确性,从而确保可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

接入设备在通过time()接口获取自身当前时刻对应的utc秒数后,可以首先通过gmtime接口将所获取的utc秒数转换为structtm结构的时间,作为当前时间;

再通过_mkgmtime接口将当前时间转换为对应的utc秒数,作为当前时刻对应的utc秒数。

这样,经过两次转换,便可以提高最终确定的当前时刻对应的utc秒数,进而提高确定的认证时间戳的准确性,从而确保可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

其中,gmtime接口用于将数据结构time_t表示的utc秒数转换为structtm结构的时间,该structtm结构的时间为直接通过“年月日时分秒”方式表示的接口设备当前时刻的utc时间。需要强调的是,gmtime接口在对utc秒数进行转换时,得到的是结果是该utc秒数对应的utc时间,即通过gmtime接口得到的当前时间为没有经过时区转换的utc时间。

其中,structtm结构为:

其中,inttm_sec代表目前秒数,正常范围为0-59,但允许至61秒;

inttm_min代表目前分数,范围为0-59;

inttm_hour代表从零点算起的目前时数,范围为0-23;

inttm_mday代表目前月份的日数,即一个月中的第几天,范围为01-31;

inttm_mon代表目前月份,从一月算起,范围为0-11;

inttm_year代表从utc时间1900年算起至今的年数;

inttm_wday代表一星期的日数,从星期日算起,范围为0-6,即0表示星期日,1表示星期一;

inttm_yday代表从今年1月1日算起至今的天数,范围为0-365;

inttm_isdst日光节约时间的旗标,即夏令时时间;所谓夏时令(daylightsavingtime:dst),又称“日光节约时制”和“夏令时间”,是一种为节约能源而人为规定地方时间的制度,在这一制度实行期间所采用的统一时间称为“夏令时间”。具体为:人为将时间调快一小时。

可选的,在本实施方式中,接入设备确定当前时刻对应的utc秒数的流程可以如下所示:

其中,tm_isdst、tm_wday、tm_yday的参数值强制置为0。

当然,由于在不同的编程语言中,与gmtime接口功能相似的接口可以不同,因此,接入设备也可以通过其他与gmtime接口功能相似的接口,将所获取的utc秒数转换为structtm结构的时间,作为当前时间,这都是合理的。

_mkgmtime接口用于将structtm结构的时间转换为utc秒数。其中,由于通过gmtime接口得到的当前时间为没有经过时区转换的utc时间,因此,_mkgmtime接口便可以将该utc时间转换为对应的utc秒数。

当然,接入设备也可以通过其他与_mkgmtime接口功能相似的接口,将转换得到的当前时间通过再次转换,得到当前时刻对应的utc秒数。例如,mktime接口,具体的,mktime接口可以将structtm结构的时间通过时区和夏令时转换,得到与structtm结构的时间对应的接入设备所在区域的当地时间,进而,将该当地时间再次转换为utc秒数。

可选的,另一种具体实现方式中,上述步骤s101可以包括如下步骤b1-b2:

步骤b1:获取接入设备当前时刻对应的utc时间;

步骤b2:通过_mkgmtime接口,将所获取的utc时间转换为当前时刻对应的utc秒数。

在本实现方式中,接入设备可以直接获取自身当前时刻对应的utc时间,然后利用_mkgmtime接口,将该所获取到的utc时间转换为当前时刻对应的utc秒数。其中,接入设备所获取的自身当前时刻对应的utc时间可以通过上述的structtm结构的时间表示。

其中,由于utc时间与零时区时间相同,因此,在本具体实现方式中,接入设备可以预先获知自身所在地理位置的时区,进而,获取自身所在地理位置的当前时刻,从而根据时区之间的时间换算方法,将所获取到的自身所在地理位置的当前时刻换算为utc时间,即获取当前时刻对应的utc时间。

此外,接入设备也可以通过其他方式获取当前时刻对应的utc时间,对此,本发明实施例不做具体限定。

例如,接入设备中可以预设一与零时区时间同步的时间模块,该时间模块所获取到的时间均为接入设备所在地理位置的时刻对应的utc时间,进而,接入设备可以直接从该时间模块处获取当前时刻所对应的utc时间。

当然,由于在不同的编程语言中,与_mkgmtime接口功能相似的接口可以不同,因此,接入设备也可以通过其他与_mkgmtime接口功能相似的接口,将获取的当前时刻对应的utc时间转换为当前时刻对应的utc秒数。

s102:从预设的关于onvif设备与时间差的对应关系中,确定待接入开放型网络视频接口论坛onvif设备对应的目标时间差;

其中,对应关系中的每个时间差为:同一时刻下,该时间差对应的onvif设备与接入设备之间的utc秒数差值;

当接入设备与onvif设备位于不同的区域时,则在同一时刻下,该onvif设备与该接入设备之间可能存在时差,进而,接入设备可以确定同一时刻下,该onvif设备与自身之间的utc秒数差值,并将该差值确定为该onvif设备与自身的时间差。

显然,当不同的onvif设备位于不同的区域时,则每个onvif设备与接入设备之间的时差可能是不相同的,因此,针对接入设备可以接入的每个onvif设备,接入设备可以确定同一时刻下,该onvif设备与自身之间的utc秒数差值,并将该差值确定为该onvif设备与自身的时间差。这样,接入设备便可以预设关于onvif设备与时间差的对应关系。则该对应关系中,每个onvif设备对应的时间差表示接入设备与该onvif设备之间的时差。

这样,接入设备在确定当前时刻对应的utc秒数后,便可以在该对应关系中确定待接入onvif设备对应的目标时间差。

为了行文清晰,后续将会对上述关于onvif设备与时间差的对应关系的构建方式进行说明。

需要说明的是,当在接入设备所能接入的多个onvif设备中添加新的onvif设备时,接入设备需要更新上述关于onvif设备与时间差的对应关系,将该新添加的onvif设备及该新添加的onvif设备对应的时间差添加到该对应关系中。

此外,为了保证时间差的准确性,接入设备还可以按照预设周期,对上述关于onvif设备与时间差的对应关系进行定时更新,以保证后续得到的待接入onvif设备对应的utc秒数的准确性。

s103:基于接入设备当前时刻对应的utc秒数和目标时间差,确定待接入onvif设备对应的utc秒数;

在确定自身当前时刻对应的utc秒数和目标时间差后,接入设备便可以确定在当前时刻,该待接入onvif设备对应的utc秒数。

其中,当目标时间差的确定方式不同时,接入设备执行上述步骤s103的方式也可以不同。

可选的,一种具体实现方式中,待接入onvif设备对应的目标时间差为:同一时刻下,待接入onvif设备对应的utc秒数减去接入设备对应的utc秒数的差值;则在本实现方式中,接入设备执行上述步骤s103的方式为:

计算当前时刻对应的utc秒数与目标时间差的和值,将计算得到的和值确定为待接入onvif设备对应的utc秒数。

可选的,另一种具体实现方式中,待接入onvif设备对应的目标时间差为:同一时刻下,接入设备对应的utc秒数减去待接入onvif设备对应的utc秒数的差值;则在本实现方式中,接入设备执行上述步骤s103的方式为:

计算当前时刻对应的utc秒数减去目标时间差的差值,将计算得到的差值确定为待接入onvif设备对应的utc秒数。

s104:将待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳。

在确定待接入onvif设备对应的utc秒数后,接入设备便可以将所确定的待接入onvif设备对应的utc秒数转换为时间戳字符串,并将该时间戳字符串确定为认证时间戳。

其中,在上述步骤s104中,接入设备可以通过多种方式将待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳。对此,本发明实施例不做具体限定。

例如,接入设备可以通过ctime函数将待接入onvif设备对应的utc秒数转换为时间戳字符串。

具体的,由于待接入onvif设备对应的utc秒数的数据结果为time_t,则可以通过ctime接口,将待接入onvif设备对应的utc秒数转换为utc时间,进而通过时区和夏令时转换,转换得到当前时刻onvif设备所在区域的当地时间,并通过字符串格式返回,则该返回的字符串即为得到的时间戳字符串。

可选的,一种具体实现方式中,上述步骤s104可以包括如下步骤c1-c2:

步骤c1:通过gmtime接口,将待接入onvif设备对应的utc秒数转换为structtm结构的时间;

步骤c2:将转换得到的时间转换为时间戳字符串,作为认证时间戳。

在确定待接入onvif设备对应的utc秒数后,接入设备便可以通过gmtime接口,将待接入onvif设备对应的utc秒数转换为structtm结构的时间。进而,接入设备便可以将转换得到的时间转换为时间戳字符串,作为认证时间戳。

其中,接入设备可以通过多种方式将上述转化得到的structtm结构的时间再次转换为时间戳字符串。

例如,接入设备可以通过asctime接口,将上述转化得到的structtm结构的时间再次转换为时间戳字符串。

具体的,asctime函数可以将structtm结构的时间通过时区和夏令时转换,得到当前时刻onvif设备所在区域的当地时间,并通过字符串格式返回,则该返回的字符串即为得到的时间戳字符串。其中,该字符串格式为:wwwmmmddhh:mm:ssyyyy。其中,www为星期;mmm为月份;dd为日;hh为时;mm为分;ss为秒;yyyy为年份。

此外,当在有些情况中,待接入onvif设备对应的utc秒数转换后得到的时间戳字符串的格式与认证时间戳的格式不同时,接入设备还可以通过时间转换接口将structtm结构的时间转换为当前时刻onvif设备所在区域的当地时间,进而,通过strftime函数,将该时间戳字符串的格式转换为认证时间戳的格式,从而得到认证时间戳。

以上可见,应用本发明实施例提供的方案,由于utc秒数的实质是从epoch时间开始到某一时刻经过的秒数,因此,utc秒数不受跨时区、夏令时等原因的影响。这样,便可以利用utc秒数,基于统一标准对接入设备和待接入onvif设备在当前时刻的时间进行确定,并根据预设的目标时间差,对接入设备在当前时刻的时间进行调整,使其与待接入onvif设备当前时刻的本地时间同步,并根据该调整后的时间确定认证时间戳,以使得认证时间戳与待接入onvif设备当前时刻的本地时间对应的utc时间同步。这样,便可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

此外,应用本发明实施例提供的方案,由于预设有关于onvif设备与时间差的对应关系,因此,在接入设备在接入不同的待接入onvif设备时,均可以直接从上述对应关系中获取目标时间差,进而,基于目标时间差确定认证时间戳,从而不需要对接入设备或者各个onvif设备分别进行手动校时,从而提高接入设备对不同的onvif设备的兼容性,减少由于接入设备与onvif设备的时间不同步导致的认证失败,进而减少由于认证失败带来的一系列项目工程问题。并且可以节省大量的人力物力,降低接入设备与onvif设备的接入成本。

下面,对上述关于onvif设备与时间差的对应关系的构建方式进行说明。

可选的,一种具体实现方式中,上述关于onvif设备与时间差的对应关系的构建方式可以包括如下步骤d1-d3:

步骤d1:获取每个onvif设备在预设时刻对应的utc秒数,作为第一秒数;

步骤d2:获取接入设备自身在预设时刻对应的utc秒数,作为第二秒数;

步骤d3:针对每个onvif设备,基于该onvif设备对应的第一秒数与第二秒数,确定该onvif设备对应的时间差。

其中,接入设备可以首先预设一个时刻,进而,接入设备便可以获取各个onvif设备在该预设时刻对应的第一秒数,以及自身在该预设时刻对应的第二秒数。这样,针对每一个onvif设备,接入设备便可以基于所获取的该onvif设备在该预设时刻对应的第一秒数和第二秒数,确定该onvif设备对应的时间差。进而,便可以确定各个onvif设备对应的时间差,得到上述关于onvif设备与时间差的对应关系。

针对上述步骤d1,与上述步骤s101类似的,接入设备可以通过多种方式获取每个onvif设备在预设时刻对应的utc秒数。

例如,通过time()接口获取每个onvif设备在预设时刻对应的utc秒数,将所获取的utc秒数,作为每个onvif设备在预设时刻对应的utc秒数;

又例如,通过time()接口获取每个onvif设备在预设时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间;通过_mkgmtime接口将转换得到的structtm结构的时间转换为对应的utc秒数,作为每个onvif设备在预设时刻对应的utc秒数;

其中,获取onvif设备在预设时刻(psysdatetime)对应的utc秒数的流程可以如下所示:

其中,tm_isdst、tm_wday、tm_yday的参数值强制为0。

又例如,获取每个onvif设备在预设时刻对应的utc时间;通过_mkgmtime接口,将所获取的utc时间转换为每个onvif设备在预设时刻对应的utc秒数。

当然,接入设备可以也可以通过其他方式获取每个onvif设备在预设时刻对应的utc秒数。

针对上述步骤d2,与上述步骤s101类似的,接入设备可以通过多种方式获取自身在预设时刻对应的utc秒数。

例如,通过time()接口获取自身在预设时刻对应的utc秒数,将所获取的utc秒数,作为获取自身在预设时刻对应的utc秒数;

又例如,通过time()接口获取自身在预设时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间;通过_mkgmtime接口将转换得到的structtm结构的时间转换为对应的utc秒数,作为自身在预设时刻对应的utc秒数;

又例如,获取自身在预设时刻对应的utc时间;通过_mkgmtime接口,将所获取的utc时间转换为自身在预设时刻对应的utc秒数。

当然,接入设备也可以通过其他方式获取自身在预设时刻对应的utc秒数。

针对上述步骤d3,针对每个onvif设备,接入设备也可以通过多种方式基于该onvif设备对应的第一秒数与第二秒数,确定该onvif设备对应的时间差。

优选的,一种实施方式中,针对每个onvif设备,接入设备可以将该onvif设备对应的第一秒数减去第二秒数的差值,确定为该onvif设备对应的时间差。

优选的,另一种实施方式中,针对每个onvif设备,接入设备可以将第二秒数减去该onvif设备对应的第一秒数的差值,确定为该onvif设备对应的时间差。

相应于上述本发明实施例提供的一种认证时间戳的确定方法,本发明实施例提供了一种认证时间戳的确定装置,应用于接入设备。

图2为本发明实施例提供的一种认证时间戳的确定装置的结构示意图,如图2所示,该确定装置可以包括如下模块:

第一秒数确定模块210,用于当满足确定认证时间戳的触发条件时,确定接入设备当前时刻对应的协调世界时间utc秒数;其中,utc秒数为:从epoch时间开始到当前时刻经过的秒数;

时间差确定模块220,用于从预设的关于onvif设备与时间差的对应关系中,确定待接入开放型网络视频接口论坛onvif设备对应的目标时间差;其中,对应关系中的每个时间差为:同一时刻下,该时间差对应的onvif设备与接入设备之间的utc秒数差值;

第二秒数确定模块230,用于基于接入设备当前时刻对应的utc秒数和目标时间差,确定待接入onvif设备对应的utc秒数;

时间戳确定模块240,用于将待接入onvif设备对应的utc秒数转换为时间戳字符串,作为认证时间戳。

以上可见,应用本发明实施例提供的方案,由于utc秒数的实质是从epoch时间开始到某一时刻经过的秒数,因此,utc秒数不受跨时区、夏令时等原因的影响。这样,便可以利用utc秒数,基于统一标准对接入设备和待接入onvif设备在当前时刻的时间进行确定,并根据预设的目标时间差,对接入设备在当前时刻的时间进行调整,使其与待接入onvif设备当前时刻的本地时间同步,并根据该调整后的时间确定认证时间戳,以使得认证时间戳与待接入onvif设备当前时刻的本地时间对应的utc时间同步。这样,便可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

此外,应用本发明实施例提供的方案,由于预设有关于onvif设备与时间差的对应关系,因此,在接入设备在接入不同的待接入onvif设备时,均可以直接从上述对应关系中获取目标时间差,进而,基于目标时间差确定认证时间戳,从而不需要对接入设备或者各个onvif设备分别进行手动校时,从而提高接入设备对不同的onvif设备的兼容性,减少由于接入设备与onvif设备的时间不同步导致的认证失败,进而减少由于认证失败带来的一系列项目工程问题。并且可以节省大量的人力物力,降低接入设备与onvif设备的接入成本。

可选的,一种具体实现方式中,上述第一秒数确定模块210可以包括:

第一确定子模块,用于基于time()接口,确定接入设备当前时刻对应的utc秒数;其中,time()接口为用于获取utc秒数的接口;

或,

第二确定子模块,用于获取接入设备当前时刻对应的utc时间;通过_mkgmtime接口,将所获取的utc时间转换为当前时刻对应的utc秒数。

可选的,一种具体实现方式中,上述第一确定子模块可以具体用于:

通过time()接口获取接入设备当前时刻对应的utc秒数,将所获取的utc秒数,作为当前时刻对应的utc秒数;

或,

通过time()接口获取接入设备当前时刻对应的utc秒数;通过gmtime接口将所获取的utc秒数转换为structtm结构的时间,作为当前时间;通过_mkgmtime接口将当前时间转换为对应的utc秒数,作为当前时刻对应的utc秒数。

可选的,一种具体实现方式中,上述时间戳确定模块240可以具体用于:

通过gmtime接口,将待接入onvif设备对应的utc秒数转换为structtm结构的时间;将转换得到的时间转换为时间戳字符串,作为认证时间戳。

可选的,一种具体实现方式中,待接入onvif设备对应的目标时间差为:同一时刻下,待接入onvif设备对应的utc秒数减去接入设备对应的utc秒数的差值,或者,同一时刻下,接入设备对应的utc秒数减去待接入onvif设备对应的utc秒数的差值;

上述第二秒数确定模块230可以具体用于:当待接入onvif设备对应的目标时间差为:同一时刻下,待接入onvif设备对应的utc秒数减去接入设备对应的utc秒数的差值时,计算当前时刻对应的utc秒数与目标时间差的和值,将计算得到的和值确定为待接入onvif设备对应的utc秒数。

或者,

上述第二秒数确定模块230可以具体用于:当同一时刻下,接入设备对应的utc秒数减去待接入onvif设备对应的utc秒数的差值时,计算当前时刻对应的utc秒数减去目标时间差的差值,将计算得到的差值确定为待接入onvif设备对应的utc秒数。

相应于上述本发明实施例提供的一种认证时间戳的确定方法,本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,

存储器303,用于存放计算机程序;

处理器301,用于执行存储器303上所存放的程序时,实现任一上述本发明实施例提供的认证时间戳的确定方法。

其中,该电子设备作为一种接入设备实现任一上述本发明实施例提供的认证时间戳的确定方法。

可选的,一种具体实现方式中,上述认证时间戳的确定方法,包括:

确定接入服务器在认证信息生成时刻对应的时间协调时间utc秒数,作为当前秒数;其中,当前秒数为:从epoch时间开始到当前时刻经过的秒数;

确定待接入开放型网络视频接口论坛onvif设备;

从预设的onvif设备与时间差的对应关系中,确定待接入onvif设备对应的时间差,作为目标时间差;其中,对应关系中的每个时间差为:同一时刻,该时间差对应的onvif设备与接入服务器对应的utc秒数的差值;

基于当前秒数和目标时间差,确定待接入onvif设备对应的utc秒数,作为目标秒数;

将目标秒数转化为时间戳字符串,作为认证时间戳。

需要说明的是,上述处理器301执行存储器303上存放的程序而实现的一种认证时间戳的确定方法的其他实现方式,与前述方法实施例部分提供的一种认证时间戳的确定方法实施例相同,这里不再赘述。

以上可见,上述电子设备的处理器在执行存储器上存放的程序时,由于utc秒数的实质是从epoch时间开始到某一时刻经过的秒数,因此,utc秒数不受跨时区、夏令时等原因的影响。这样,便可以利用utc秒数,基于统一标准对电子设备和待接入onvif设备在当前时刻的时间进行确定,并根据预设的目标时间差,对电子设备在当前时刻的时间进行调整,使其与待接入onvif设备当前时刻的本地时间同步,并根据该调整后的时间确定认证时间戳,以使得认证时间戳与待接入onvif设备当前时刻的本地时间对应的utc时间同步。这样,便可以实现电子设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

此外,应用本发明实施例提供的方案,由于预设有关于onvif设备与时间差的对应关系,因此,在电子设备在接入不同的待接入onvif设备时,均可以直接从上述对应关系中获取目标时间差,进而,基于目标时间差确定认证时间戳,从而不需要对电子设备或者各个onvif设备分别进行手动校时,从而提高电子设备对不同的onvif设备的兼容性,减少由于接入设备与onvif设备的时间不同步导致的认证失败,进而减少由于认证失败带来的一系列项目工程问题。并且可以节省大量的人力物力,降低电子设备与onvif设备的接入成本。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

相应于上述本发明实施例提供的一种认证时间戳的确定方法,本发明实施例还提供了一种计算机可读存储介质,该计算机程序被处理器执行时实现任一上述本发明实施例提供的认证时间戳的确定方法。

可选的,一种具体实现方式中,上述认证时间戳的确定方法,包括:

确定接入服务器在认证信息生成时刻对应的时间协调时间utc秒数,作为当前秒数;其中,当前秒数为:从epoch时间开始到当前时刻经过的秒数;

确定待接入开放型网络视频接口论坛onvif设备;

从预设的onvif设备与时间差的对应关系中,确定待接入onvif设备对应的时间差,作为目标时间差;其中,对应关系中的每个时间差为:同一时刻,该时间差对应的onvif设备与接入服务器对应的utc秒数的差值;

基于当前秒数和目标时间差,确定待接入onvif设备对应的utc秒数,作为目标秒数;

将目标秒数转化为时间戳字符串,作为认证时间戳。

需要说明的是,上述计算机程序被处理器执行时而实现的一种认证时间戳的确定方法的其他实现方式,与前述方法实施例部分提供的一种认证时间戳的确定方法实施例相同,这里不再赘述。

以上可见,处理器在执行上述计算机可读存储介质中所存储的计算机程序时,由于utc秒数的实质是从epoch时间开始到某一时刻经过的秒数,因此,utc秒数不受跨时区、夏令时等原因的影响。这样,便可以利用utc秒数,基于统一标准对接入设备和待接入onvif设备在当前时刻的时间进行确定,并根据预设的目标时间差,对接入设备在当前时刻的时间进行调整,使其与待接入onvif设备当前时刻的本地时间同步,并根据该调整后的时间确定认证时间戳,以使得认证时间戳与待接入onvif设备当前时刻的本地时间对应的utc时间同步。这样,便可以实现接入设备发送的认证时间戳能够不受跨时区、夏令时等原因的影响,与onvif设备的本地时间保持同步。

此外,应用本发明实施例提供的方案,由于预设有关于onvif设备与时间差的对应关系,因此,在接入设备在接入不同的待接入onvif设备时,均可以直接从上述对应关系中获取目标时间差,进而,基于目标时间差确定认证时间戳,从而不需要对接入设备或者各个onvif设备分别进行手动校时,从而提高接入设备对不同的onvif设备的兼容性,减少由于接入设备与onvif设备的时间不同步导致的认证失败,进而减少由于认证失败带来的一系列项目工程问题。并且可以节省大量的人力物力,降低接入设备与onvif设备的接入成本。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、接入设备实施例、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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