CN114374517A - 基于动态时间戳的api调用方法、系统、装置及存储介质 - Google Patents

基于动态时间戳的api调用方法、系统、装置及存储介质 Download PDF

Info

Publication number
CN114374517A
CN114374517A CN202111492652.8A CN202111492652A CN114374517A CN 114374517 A CN114374517 A CN 114374517A CN 202111492652 A CN202111492652 A CN 202111492652A CN 114374517 A CN114374517 A CN 114374517A
Authority
CN
China
Prior art keywords
timestamp
api
time
server
request message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111492652.8A
Other languages
English (en)
Inventor
聂伊婕
朱明�
丁霞
王世杰
吴昱炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianyi IoT Technology Co Ltd
Original Assignee
Tianyi IoT Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianyi IoT Technology Co Ltd filed Critical Tianyi IoT Technology Co Ltd
Priority to CN202111492652.8A priority Critical patent/CN114374517A/zh
Publication of CN114374517A publication Critical patent/CN114374517A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种基于动态时间戳的API调用方法、系统、装置及存储介质,方法包括:获取服务器的第一时间和客户端的第二时间,根据第一时间和第二时间确定时间偏移量,进而根据时间偏移量确定修正后的第一时间戳;确定待调用API的多个输入参数,并对输入参数进行排序,得到第一参数序列;对第一时间戳和第一参数序列进行拼接处理,得到第一字符串,进而对第一字符串进行签名计算得到第一签名数据;根据待调用API的接口验证序号、第一时间戳以及第一签名数据生成API调用请求报文,并将API调用请求报文发送至服务器,使得服务器对API调用请求报文进行验证。本发明提高了API调用的安全性,可广泛应用于物联网通信技术领域。

Description

基于动态时间戳的API调用方法、系统、装置及存储介质
技术领域
本发明涉及物联网通信技术领域,尤其是一种基于动态时间戳的API调用方法、系统、装置及存储介质。
背景技术
物联网通用使能平台是为物联网应用开发者提供快速开发、部署以及应用管理的平台。随着物联网技术的发展,越来越多设备接入物联网通用使能平台,客户可以在应用管理模块下创建应用管理各类设备。客户通常采用API接口调用的方式来获取应用获取各类数据。在请求方和接口提供方之间的通信过程中,需要考虑请求参数是否被篡改、请求来源是否合法、请求是否具有唯一性一系列问题。
发明内容
本发明的目的在于至少一定程度上解决现有技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提供一种基于动态时间戳的API调用方法,该方法可有效避免过时的请求报文被重复使用,防止黑客利用已通过验证的时间签名再次调用API,确保了请求报文规定时效内的唯一性,提高了API调用的安全性。
本发明实施例的另一个目的在于提供一种基于动态时间戳的API调用系统。
为了达到上述技术目的,本发明实施例所采取的技术方案包括:
第一方面,本发明实施例提供了一种基于动态时间戳的API调用方法,包括以下步骤:
获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳;
确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列;
对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串,进而对所述第一字符串进行签名计算得到第一签名数据;
根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证。
进一步地,在本发明的一个实施例中,所述获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳这一步骤,其具体包括:
通过客户端发送时间获取请求至服务器,使得所述服务器在接收到所述时间获取请求时返回所述服务器当前的第一时间;
当所述客户端接收到所述第一时间,获取所述客户端当前的第二时间,并根据所述第一时间和所述第二时间的差值确定时间偏移量;
根据所述时间偏移量对所述客户端的时间戳进行修正,得到所述第一时间戳。
进一步地,在本发明的一个实施例中,所述确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列这一步骤,其具体包括:
确定待调用API的多个输入参数,并确定所述输入参数的参数名称;
根据所述参数名称的ASCLL码表的顺序对所述输入参数进行排序,得到第一参数序列。
进一步地,在本发明的一个实施例中,所述对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串这一步骤,其具体包括:
将所述待调用API的接口验证序号和所述第一时间戳添加在所述第一参数序列的头部,得到第二参数序列;
将所述第二参数序列中的参数名称和参数值成对拼接形成键值对,进而通过换行符将所述键值对进行连接,得到第二字符串;
将请求报文正文通过二进制的方式写入所述第二字符串的尾部,得到所述第一字符串。
进一步地,在本发明的一个实施例中,所述对所述第一字符串进行签名计算得到第一签名数据这一步骤,其具体包括:
对所述第一字符串进行UTF-8编码得到第一字节流;
根据待调用API的应用程序密钥对所述第一字节流进行HMAC_SHA1摘要计算得到第二字节流;
对所述第二字节流进行Base64编码得到所述第一签名数据。
进一步地,在本发明的一个实施例中,所述根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证这一步骤,其具体包括:
将所述待调用API的接口验证序号、所述第一时间戳、所述第一签名数据以及所述待调用API的版本号写入请求报文头,得到API调用请求报文;
通过所述客户端将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行时间戳验证和签名验证;
当所述API调用请求报文通过时间戳验证和签名验证,通过所述服务器返回API调用结果。
进一步地,在本发明的一个实施例中,所述对所述API调用请求报文进行时间戳验证和签名验证这一步骤,其具体包括:
获取所述API调用请求报文中的所述第一时间戳,并获取所述服务器当前的第三时间;
当所述第一时间戳与所述第三时间的差值大于预设的第一阈值,返回时间戳验证失败;
当所述第一时间戳与所述第三时间的差值小于等于预设的第一阈值,获取所述API调用请求报文中的所述第一签名数据,并根据所述第一签名据进行签名验证。
第二方面,本发明实施例提供了一种基于动态时间戳的API调用系统,包括:
时间戳修正模块,用于获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳;
第一参数序列确定模块,用于确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列;
第一签名数据确定模块,用于对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串,进而对所述第一字符串进行签名计算得到第一签名数据;
API调用请求模块,用于根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证。
第三方面,本发明实施例提供了一种基于动态时间戳的API调用装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行时,使得所述至少一个处理器实现上述的一种基于动态时间戳的API调用方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行上述的一种基于动态时间戳的API调用方法。
本发明的优点和有益效果将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到:
本发明实施例通过实时获取服务器和客户端的当前时间确定修正后的动态时间戳,使用该动态时间戳对API调用请求报文进行封装,同时还把该动态时间戳作为签名数据的一部分,一方面由于该动态时间戳经过服务器与客户端时间偏移量的修正,提高了时间戳的准确性,从而提高了API调用的安全性,另一方面由于采用该动态时间戳同时进行签名和报文封装,可有效避免过时的请求报文被重复使用,防止黑客利用已通过验证的时间签名再次调用API,从而确保了请求报文规定时效内的唯一性,进一步提高了API调用的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面对本发明实施例中所需要使用的附图作以下介绍,应当理解的是,下面介绍中的附图仅仅为了方便清晰表述本发明的技术方案中的部分实施例,对于本领域的技术人员来说,在无需付出创造性劳动的前提下,还可以根据这些附图获取到其他附图。
图1为本发明实施例提供的一种基于动态时间戳的API调用方法的步骤流程图;
图2为本发明实施例提供的一种基于动态时间戳的API调用方法的具体流程示意图;
图3为本发明实施例提供的一种基于动态时间戳的API调用系统的结构框图;
图4为本发明实施例提供的一种基于动态时间戳的API调用装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。对于以下实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。
在本发明的描述中,多个的含义是两个或两个以上,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。
参照图1,本发明实施例提供了一种基于动态时间戳的API调用方法,具体包括以下步骤:
S101、获取服务器的第一时间和客户端的第二时间,根据第一时间和第二时间确定时间偏移量,进而根据时间偏移量确定修正后的第一时间戳。
具体地,在调用需要签名认证的API之前,先要计算客户端与服务器API网关的时间偏移量,根据时间偏移量对客户端的时间戳进行修正,后续服务器只需对修正后的时间戳进行验证,以避免过时的请求被重复使用。步骤S101具体包括以下步骤:
S1011、通过客户端发送时间获取请求至服务器,使得服务器在接收到时间获取请求时返回服务器当前的第一时间;
S1012、当客户端接收到第一时间,获取客户端当前的第二时间,并根据第一时间和第二时间的差值确定时间偏移量;
S1013、根据时间偏移量对客户端的时间戳进行修正,得到第一时间戳。
具体地,可以通过“http://${正式环境地址}/echo”接口的响应报文头的时间戳字段获得服务器当前的第一时间t1;在服务器返回服务器第一时间t1的同时获得客户端本地当前的第二时间t2,从而计算出两者的时间偏移量offset如下:
offset=t1-t2
根据计算出的时间偏移量offset,将客户端的时间进行修正后得到第一时间戳timestamp如下:
timestamp=System.currentTimeMillis()+offset
根据上述步骤即可得到签名算法所需的动态时间戳,在后续的请求,该动态时间戳需要作为公共参数写入请求报文。
S102、确定待调用API的多个输入参数,并对输入参数进行排序,得到第一参数序列。
具体地,每个输入参数均对应着一个参数名称,可根据参数名称对输入参数进行排序,由于参数名称的顺序不会变化,这样可以便于后续服务器对签名数据的解签。步骤S102具体包括以下步骤:
S1021、确定待调用API的多个输入参数,并确定输入参数的参数名称;
S1022、根据参数名称的ASCLL码表的顺序对输入参数进行排序,得到第一参数序列。
具体地,对于调用API需要的所有输入参数,根据其对应的参数名称的ASCII码表的顺序进行排序,如果某个字段不需要输入参数值,则使用0长度字符串代替参数值,从而得到第一参数序列。
S103、对第一时间戳和第一参数序列进行拼接处理,得到第一字符串,进而对第一字符串进行签名计算得到第一签名数据。
具体地,通过拼接处理将得到的第一时间戳和第一参数序列形成字符串,然后通过签名算法对该字符串进行签名得到第一签名数据。
进一步作为可选的实施方式,对第一时间戳和第一参数序列进行拼接处理,得到第一字符串这一步骤,其具体包括:
A1、将待调用API的接口验证序号和第一时间戳添加在第一参数序列的头部,得到第二参数序列;
A2、将第二参数序列中的参数名称和参数值成对拼接形成键值对,进而通过换行符将键值对进行连接,得到第二字符串;
A3、将请求报文正文通过二进制的方式写入第二字符串的尾部,得到第一字符串。
具体地,在第一参数序列的前面添加上公共参数中的application(应用的AppKey,也即待调用API的接口验证序号)和timestamp(使用offset修正后的第一时间戳)得到第二参数序列;将参数名称和参数值使用冒号成对拼接形成键值对,如timestamp:1ms,再通过换行符将所有键值对连接在一起,得到第二字符串;最后将请求报文正文数据通过二进制的方式写入第二字符串结尾,从而得到用于签名算法的第一字符串。
进一步作为可选的实施方式,对第一字符串进行签名计算得到第一签名数据这一步骤,其具体包括:
B1、对第一字符串进行UTF-8编码得到第一字节流;
B2、根据待调用API的应用程序密钥对第一字节流进行HMAC_SHA1摘要计算得到第二字节流;
B3、对第二字节流进行Base64编码得到第一签名数据。
具体地,将拼接好的第一字符串采用UTF-8编码得到第一字节流,使用签名算法对编码后的第一字节流进行HMAC_SHA1摘要计算,其中,密钥为应用的App Secret(即应用程序密钥)。随后,对摘要计算得到的第二字节流再使用Base64进行编码计算得到最后的第一签名数据signature。
S104、根据待调用API的接口验证序号、第一时间戳以及第一签名数据生成API调用请求报文,并将API调用请求报文发送至服务器,使得服务器对API调用请求报文进行验证。
具体地,将应用的App Key、第一时间戳timestamp、API版本号version以及第一签名数据signature写入HTTP请求报文头,发送给服务器进行验证,通过验证后即可进行API的调用。
步骤S104具体包括以下步骤:
S1041、将待调用API的接口验证序号、第一时间戳、第一签名数据以及待调用API的版本号写入请求报文头,得到API调用请求报文;
S1042、通过客户端将API调用请求报文发送至服务器,使得服务器对API调用请求报文进行时间戳验证和签名验证;
S1043、当API调用请求报文通过时间戳验证和签名验证,通过服务器返回API调用结果。
进一步作为可选的实施方式,对API调用请求报文进行时间戳验证和签名验证这一步骤,其具体包括:
C1、获取API调用请求报文中的第一时间戳,并获取服务器当前的第三时间;
C2、当第一时间戳与第三时间的差值大于预设的第一阈值,返回时间戳验证失败;
C3、当第一时间戳与第三时间的差值小于等于预设的第一阈值,获取API调用请求报文中的第一签名数据,并根据第一签名据进行签名验证。
具体地,首先验证请求报文头的第一时间戳timestamp,如果提交请求的时间戳(修正后的动态时间戳)与服务器时间相差小于预设的系统参数值clock_skew的时候,请求合法,否则服务器会拒绝此请求并返回对应的错误码;第一时间戳timestamp验证通过后,服务器验证请求中的第一签名数据signature,如果验证通过则允许调用API,返回API调用结果,验证失败则返回错误码以及相关错误信息。
以上对本发明实施例的方法步骤进行了说明。如图2所示为本发明实施例提供一种基于动态时间戳的API调用方法的具体流程示意图,可以理解的是,客户端先从服务器获取服务器时间,然后客户端本地进行动态时间戳的计算、签名数据的生成以及请求报文的封装,然后将API调用请求发送到服务器,在服务器完成验证过程。
应该认识到,现有的API签名算法按照请求参数名称将所有请求参数按照字母先后顺序排序,随后将APP Secret加在符串的头部进行MD5加密,并返回签名结果,API调用的安全性较低。本发明实施例通过实时获取服务器和客户端的当前时间确定修正后的动态时间戳,使用该动态时间戳对API调用请求报文进行封装,同时还把该动态时间戳作为签名数据的一部分,一方面由于该动态时间戳经过服务器与客户端时间偏移量的修正,提高了时间戳的准确性,从而提高了API调用的安全性,另一方面由于采用该动态时间戳同时进行签名和报文封装,可有效避免过时的请求报文被重复使用,防止黑客利用已通过验证的时间签名再次调用API,从而确保了请求报文规定时效内的唯一性,进一步提高了API调用的安全性。
与现有技术相比,本发明实施例还具有以下优点:
1)将应用的App Secret隐藏在加密计算中,作为HMAC_SHA1摘要计算的密钥,此处,App Secret不会作为请求信息在传输过程中暴露,防止了客户应用信息泄露,有效地解决了参数被篡改和身份验证的问题。
2)在HMAC_SHA1摘要计算后,本发明实施例将摘要得到的字节流结果再使用Base64进行编码计算,两次加密后得到最后的signature签名结果,相较于传统一次MD5加密,签名安全性更强。
可以认识到,本发明实施例可应用于物联网通用使能平台能力网关和应用管理两模块,确保客户可以顺利调用应用所属的各类API,防止应用以及应用下所属设备数据被篡改,提高了物联网通用使能平台的安全性。
参照图3,本发明实施例提供了一种基于动态时间戳的API调用系统,包括:
时间戳修正模块,用于获取服务器的第一时间和客户端的第二时间,根据第一时间和第二时间确定时间偏移量,进而根据时间偏移量确定修正后的第一时间戳;
第一参数序列确定模块,用于确定待调用API的多个输入参数,并对输入参数进行排序,得到第一参数序列;
第一签名数据确定模块,用于对第一时间戳和第一参数序列进行拼接处理,得到第一字符串,进而对第一字符串进行签名计算得到第一签名数据;
API调用请求模块,用于根据待调用API的接口验证序号、第一时间戳以及第一签名数据生成API调用请求报文,并将API调用请求报文发送至服务器,使得服务器对API调用请求报文进行验证。
上述方法实施例中的内容均适用于本系统实施例中,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
参照图4,本发明实施例提供了一种基于动态时间戳的API调用装置,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当上述至少一个程序被上述至少一个处理器执行时,使得上述至少一个处理器实现上述的一种基于动态时间戳的API调用方法。
上述方法实施例中的内容均适用于本装置实施例中,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法实施例所达到的有益效果也相同。
本发明实施例还提供了一种计算机可读存储介质,其中存储有处理器可执行的程序,该处理器可执行的程序在由处理器执行时用于执行上述一种基于动态时间戳的API调用方法。
本发明实施例的一种计算机可读存储介质,可执行本发明方法实施例所提供的一种基于动态时间戳的API调用方法,可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或上述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,上述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印上述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得上述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的上述描述中,参考术语“一个实施方式/实施例”、“另一实施方式/实施例”或“某些实施方式/实施例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施方式,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施方式进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于上述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种基于动态时间戳的API调用方法,其特征在于,包括以下步骤:
获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳;
确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列;
对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串,进而对所述第一字符串进行签名计算得到第一签名数据;
根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证。
2.根据权利要求1所述的一种基于动态时间戳的API调用方法,其特征在于,所述获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳这一步骤,其具体包括:
通过客户端发送时间获取请求至服务器,使得所述服务器在接收到所述时间获取请求时返回所述服务器当前的第一时间;
当所述客户端接收到所述第一时间,获取所述客户端当前的第二时间,并根据所述第一时间和所述第二时间的差值确定时间偏移量;
根据所述时间偏移量对所述客户端的时间戳进行修正,得到所述第一时间戳。
3.根据权利要求1所述的一种基于动态时间戳的API调用方法,其特征在于,所述确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列这一步骤,其具体包括:
确定待调用API的多个输入参数,并确定所述输入参数的参数名称;
根据所述参数名称的ASCLL码表的顺序对所述输入参数进行排序,得到第一参数序列。
4.根据权利要求3所述的一种基于动态时间戳的API调用方法,其特征在于,所述对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串这一步骤,其具体包括:
将所述待调用API的接口验证序号和所述第一时间戳添加在所述第一参数序列的头部,得到第二参数序列;
将所述第二参数序列中的参数名称和参数值成对拼接形成键值对,进而通过换行符将所述键值对进行连接,得到第二字符串;
将请求报文正文通过二进制的方式写入所述第二字符串的尾部,得到所述第一字符串。
5.根据权利要求1所述的一种基于动态时间戳的API调用方法,其特征在于,所述对所述第一字符串进行签名计算得到第一签名数据这一步骤,其具体包括:
对所述第一字符串进行UTF-8编码得到第一字节流;
根据待调用API的应用程序密钥对所述第一字节流进行HMAC_SHA1摘要计算得到第二字节流;
对所述第二字节流进行Base64编码得到所述第一签名数据。
6.根据权利要求1至5中任一项所述的一种基于动态时间戳的API调用方法,其特征在于,所述根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证这一步骤,其具体包括:
将所述待调用API的接口验证序号、所述第一时间戳、所述第一签名数据以及所述待调用API的版本号写入请求报文头,得到API调用请求报文;
通过所述客户端将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行时间戳验证和签名验证;
当所述API调用请求报文通过时间戳验证和签名验证,通过所述服务器返回API调用结果。
7.根据权利要求6所述的一种基于动态时间戳的API调用方法,其特征在于,所述对所述API调用请求报文进行时间戳验证和签名验证这一步骤,其具体包括:
获取所述API调用请求报文中的所述第一时间戳,并获取所述服务器当前的第三时间;
当所述第一时间戳与所述第三时间的差值大于预设的第一阈值,返回时间戳验证失败;当所述第一时间戳与所述第三时间的差值小于等于预设的第一阈值,获取所述API调用请求报文中的所述第一签名数据,并根据所述第一签名据进行签名验证。
8.一种基于动态时间戳的API调用系统,其特征在于,包括:
时间戳修正模块,用于获取服务器的第一时间和客户端的第二时间,根据所述第一时间和所述第二时间确定时间偏移量,进而根据所述时间偏移量确定修正后的第一时间戳;第一参数序列确定模块,用于确定待调用API的多个输入参数,并对所述输入参数进行排序,得到第一参数序列;
第一签名数据确定模块,用于对所述第一时间戳和所述第一参数序列进行拼接处理,得到第一字符串,进而对所述第一字符串进行签名计算得到第一签名数据;
API调用请求模块,用于根据所述待调用API的接口验证序号、所述第一时间戳以及所述第一签名数据生成API调用请求报文,并将所述API调用请求报文发送至所述服务器,使得所述服务器对所述API调用请求报文进行验证。
9.一种基于动态时间戳的API调用装置,其特征在于,包括:
至少一个处理器;
至少一个存储器,用于存储至少一个程序;
当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现如权利要求1至7中任一项所述的一种基于动态时间戳的API调用方法。
10.一种计算机可读存储介质,其中存储有处理器可执行的程序,其特征在于,所述处理器可执行的程序在由处理器执行时用于执行如权利要求1至7中任一项所述的一种基于动态时间戳的API调用方法。
CN202111492652.8A 2021-12-08 2021-12-08 基于动态时间戳的api调用方法、系统、装置及存储介质 Pending CN114374517A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111492652.8A CN114374517A (zh) 2021-12-08 2021-12-08 基于动态时间戳的api调用方法、系统、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111492652.8A CN114374517A (zh) 2021-12-08 2021-12-08 基于动态时间戳的api调用方法、系统、装置及存储介质

Publications (1)

Publication Number Publication Date
CN114374517A true CN114374517A (zh) 2022-04-19

Family

ID=81140099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111492652.8A Pending CN114374517A (zh) 2021-12-08 2021-12-08 基于动态时间戳的api调用方法、系统、装置及存储介质

Country Status (1)

Country Link
CN (1) CN114374517A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226879A (zh) * 2022-12-26 2023-06-06 易方达基金管理有限公司 服务接口访问控制方法、装置、计算机设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005020651A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd タイムスタンプ情報検証方法
US9736222B1 (en) * 2013-04-28 2017-08-15 Amdocs Software Systems Limited System, method, and computer program for automatically exposing application programming interfaces (APIS) associated with an application server to one or more client devices
CN109450649A (zh) * 2018-12-28 2019-03-08 北京金山安全软件有限公司 一种基于应用程序接口的网关验证方法、装置及电子设备
CN112235237A (zh) * 2020-09-01 2021-01-15 广州酷车信息科技有限公司 一种基于多种安全协议的访问方法、系统、装置及介质
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
US11075923B1 (en) * 2020-05-29 2021-07-27 Zscaler, Inc. Method and apparatus for entity-based resource protection for a cloud-based system
CN113452531A (zh) * 2021-06-29 2021-09-28 青岛海尔科技有限公司 数据传输方法及装置
CN113746632A (zh) * 2021-07-20 2021-12-03 南京邮电大学 一种物联网系统多级身份认证方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005020651A (ja) * 2003-06-30 2005-01-20 Hitachi Ltd タイムスタンプ情報検証方法
US9736222B1 (en) * 2013-04-28 2017-08-15 Amdocs Software Systems Limited System, method, and computer program for automatically exposing application programming interfaces (APIS) associated with an application server to one or more client devices
CN109450649A (zh) * 2018-12-28 2019-03-08 北京金山安全软件有限公司 一种基于应用程序接口的网关验证方法、装置及电子设备
US11075923B1 (en) * 2020-05-29 2021-07-27 Zscaler, Inc. Method and apparatus for entity-based resource protection for a cloud-based system
CN112235237A (zh) * 2020-09-01 2021-01-15 广州酷车信息科技有限公司 一种基于多种安全协议的访问方法、系统、装置及介质
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
CN113452531A (zh) * 2021-06-29 2021-09-28 青岛海尔科技有限公司 数据传输方法及装置
CN113746632A (zh) * 2021-07-20 2021-12-03 南京邮电大学 一种物联网系统多级身份认证方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116226879A (zh) * 2022-12-26 2023-06-06 易方达基金管理有限公司 服务接口访问控制方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
WO2021238527A1 (zh) 数字签名生成方法、装置、计算机设备和存储介质
US11501533B2 (en) Media authentication using distributed ledger
US11233657B2 (en) Method and system for registering digital documents
CN108270874B (zh) 应用程序的更新方法及装置
CN111475824B (zh) 数据访问方法、装置、设备和存储介质
CN107483509A (zh) 一种身份验证方法、服务器及可读存储介质
CN108683502B (zh) 一种数字签名验证方法、介质及设备
CN111314172B (zh) 基于区块链的数据处理方法、装置、设备及存储介质
CN106911684B (zh) 一种鉴权方法及系统
CN110247897B (zh) 一种系统登录方法、设备、网关及计算机可读存储介质
CN111614731B (zh) 物联网设备接入区块链方法、系统、聚合网关及存储介质
CN114374517A (zh) 基于动态时间戳的api调用方法、系统、装置及存储介质
CN111050326B (zh) 基于区块链的短信验证方法、装置、设备及介质
CN110890979B (zh) 堡垒机自动部署方法、装置、设备及介质
CN110602051B (zh) 基于共识协议的信息处理方法及相关装置
CN113378147A (zh) 一种用户登录业务平台的方法
CN114817956A (zh) 一种usb通信对象验证方法、系统、装置及存储介质
Barenghi et al. A security audit of the OpenPGP format
CN112615719A (zh) 一种去中心化线上合同签署方法、装置、设备及介质
CN113504931B (zh) 一种控制器测试方法、装置、设备及存储介质
CN116756723B (zh) 一种电子签章的方法、装置、存储介质及电子设备
CN113572578B (zh) 基于数据中台的tcp数据传输方法、装置、设备和介质
CN114978547B (zh) 一种基于区块链网络的链下交易方法、装置及设备
CN114844645B (zh) 一种数据验证方法、装置、电子设备和存储介质
CN109347639B (zh) 一种序列号的生成方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination