CN108243172A - 一种发送验证信息的方法及*** - Google Patents

一种发送验证信息的方法及*** Download PDF

Info

Publication number
CN108243172A
CN108243172A CN201611228347.7A CN201611228347A CN108243172A CN 108243172 A CN108243172 A CN 108243172A CN 201611228347 A CN201611228347 A CN 201611228347A CN 108243172 A CN108243172 A CN 108243172A
Authority
CN
China
Prior art keywords
request information
network request
network
interface parameter
solicited 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.)
Granted
Application number
CN201611228347.7A
Other languages
English (en)
Other versions
CN108243172B (zh
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.)
Wuhan Douyu Network Technology Co Ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201611228347.7A priority Critical patent/CN108243172B/zh
Publication of CN108243172A publication Critical patent/CN108243172A/zh
Application granted granted Critical
Publication of CN108243172B publication Critical patent/CN108243172B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供了一种发送验证信息的方法及***,方法包括:客户端获取第一网络请求信息;根据第一网络请求信息生成第二网络请求信息及第一接口参数;将第二网络请求信息及第一接口参数进行拼接生成第三网络请求信息;将第三网络请求信息发送至服务器,使得服务器能基于第三网络请求信息计算第二接口参数,并判断第一接口参数与第二接口参数是否一致,若确定第二接口参数及第一接口参数一致时,向所述客户端发送所述验证信息;如此,即使用户利用脚本软件抓取或更换第一网络请求信息中的电话号码,也不能频繁或攻击性地向该电话号码发送验证信息,降低了恶意重发验证信息的几率,并且也无需输入难以辨认的验证码进行验证,进而提高了用户的操作效率。

Description

一种发送验证信息的方法及***
技术领域
本发明属于通信技术领域,尤其涉及一种发送验证信息的方法及***。
背景技术
市场上很多终端的APP是用手机号注册或者登录的,一般在获取手机接收的验证信息之前,需要先输入几个数字或者符号的验证码进行注册或登录。
而为了避免验证码被频繁或攻击性地发送,现有技术将验证码设计的更为复杂化,验证码上的文字歪歪斜斜的甚至难以辨认,用户输入的时候可能输入错误,对登录或注册APP造成了一定的障碍,从而降低了用户的操作效率。
发明内容
针对现有技术存在的问题,本发明实施例提供了一种发送验证信息的方法及***,用于解决现有技术中在登录或注册APP时,避免验证码被频繁或者攻击性地发送,导致用户操作效率降低的技术问题。
本发明提供一种发送验证信息的方法,所述方法包括:
客户端获取第一网络请求信息;
根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息;
将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
上述方案中,所述根据所述第一网络请求信息生成第二网络请求信息及第一接口参数,包括:
从字典中获取所述第一网络请求信息中的时间参数字符串;
获取所述时间参数字符串的键值key,每个键值对应一个数值;
按照预设的第一排序规则对所述键值进行排序,获取键值数组;
利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串;
将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;
利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
上述方案中,所述利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数,包括:
解析所述第二网络请求信息,获取服务器地址及第一查询字符串;
将所述第一查询字符串中的参数按照预设的第二排序规则进行排序,形成所述第二查询字符串;
根据所述第二查询字符串生成第四网络请求信息;
利用对称算法基于所述第四网络请求信息生成摘要信息;
对所述摘要信息进行加密处理;
将预设密钥的明文信息与加密处理后的摘要信息进行拼接,形成所述第一接口参数。
本发明还提供一种发送验证信息的方法,所述方法包括:
客户端获取第一网络请求信息;
根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息,并将所述第三网络请求信息发送至服务器;
服务器基于所述第三网络请求信息计算第二接口参数,判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
上述方案中,所述服务器向所述客户端发送所述验证信息时,按照预设的发送次数进行发送。
本发明还提供一种客户端,所述客户端包括:
获取单元,用于获取第一网络请求信息;
第一生成单元,用于根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;第二生成单元,用于根据所述第二网络请求信息及所述第一接口参数生成第三网络请求信息;
发送单元,用于将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并当确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
上述方案中,所述第一生成单元包括:
第一获取子单元,用于从字典中获取所述第一网络请求信息中的时间参数字符串;
获取所述时间参数字符串的键值key,每个键值对应一个数值;
按照预设的第一排序规则对所述键值进行排序,获取键值数组;
转换子单元,用于利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串;
拼接子单元,用于将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;
第二获取子单元,用于利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
上述方案中,所述第二获取子单元利用MD5算法从所述第二网络请求信息中获取所述第一接口参数,包括:
解析所述第二网络请求信息,获取服务器地址及第一查询字符串;
将所述第一查询字符串中的参数按照预设的第二排序规则进行排序,形成所述第二查询字符串;
根据所述第二查询字符串生成第四网络请求信息;
利用对称算法基于所述第四网络请求信息生成摘要信息;
对所述摘要信息进行加密处理;
将预设密钥的明文信息与加密处理后的摘要信息进行拼接,形成所述第一接口参数。
本发明还提供一种发送验证信息的***,所述***包括:
客户端,用于获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息,并将所述第三网络请求信息发送至服务器;服务器,用于基于所述第三网络请求信息计算第二接口参数,判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
上述方案中,所述服务器向所述客户端发送所述验证信息时,按照预设的发送次数进行发送。
本发明提供了一种发送验证信息的方法及***,所述方法包括:客户端获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息;将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值;如此,即使用户利用脚本软件抓取或更换第一网络请求信息中的电话号码,也不能频繁或攻击性地向该电话号码发送验证信息,因为还需获取到正确的令牌值,才能发送验证信息,这样就降低了恶意重发验证信息的几率,并且也无需输入难以辨认的验证码进行验证,进而提高了用户的操作效率。
附图说明
图1为本发明实施例提供的发送验证信息的***的整体结构示意图;
图2为本发明实施例提供的发送验证信息的方法流程示意图;
图3为本发明实施例提供的又一发送验证信息的方法流程示意图
图4为本发明实施例提供的客户端的整体结构示意图;
图5为本发明实施例提供第一生成单元的整体结构示意图。
具体实施方式
为了在登录或注册APP时,无需输入难以辨认的验证码进行验证,且利用接收的验证信息进行验证时,降低了恶意重发验证信息的几率,提高用户的操作效率,本发明提供了一种发送验证信息的方法及***,所述方法包括:客户端获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息;将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值;
下面通过附图及具体实施例对本发明的技术方案做进一步的详细说明。
在介绍本发明的方法实施例之前,先介绍本发明实施例中验证***架构,如图1所示,该***包括:客户端101和服务器102。服务器102如图1所示,可与N个客户端101实现通信连接,N为自然数,其中,客户端101、服务器102之间的通信方式可以是有线通信,也可以是无线通信,所述客户端101具体可以是智能手机,也可以是平板电脑,还可以是智能穿戴设备等等,本申请对此不作限定。
如图2所示,所述客户端101与所述服务器102之间的数据交互过程如下:
S1,客户端获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;根据所述第二网络请求信息及所述第一接口参数生成第三网络请求信息,客户端将所述第三网络请求信息发送至服务器。
本步骤中,客户端获取第一网络请求信息,获取到第一网络请求信息后,根据所述第一网络请求信息生成第二网络请求信息及第一接口参数,具体包括:
因第一网络请求信息是在字典dict中的,客户端首先从字典dict中获取时间参数的字符串,比如,所述时间参数的字符串可以为e=14696&method=get-code&mobile=1355408****;其中,e,method,mobile是一个字典dict的键值key;1469,get-code,1355408****是字典dict的数值value。其中,所述第一网络请求信息是统一资源定位符URL。
当获取到时间参数字符串的所有的键值key后,按照预设的第一排序规则对所述键值key进行排序,获取键值数组;所述第一排序规则可以利用ortedArrayUsingComparator排序方法生成,利用ortedArrayUsingComparator排序方法即可生成一个有顺序的键值数组array。所述键值数组array中的键值key可以是按照升序排序,也可以是按照降序排序,本实施例中是按照升序a-z进行排序。
当获取到键值数组后,利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串,将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
具体地,利用objectAtIndex方法取出键值数组中的第一个键值key1,利用映射关系通过所述第一个键值key1从字典dict中取出第一个数值value1,然后将第一个键值key1和第一个数值value1拼接成一个新的字符串dictvaluestr1;依此类推,将所有的键值都转化为dictvaluestr类型的字符串,最后将所有dictvaluestr类型的字符串进行拼接,形成所述数值的字符串。
然后将数值的字符串与服务器地址的path部分进行拼接形成第二网络请求信息Sorturl;其中,所述第二网络请求信息其实也是一个URL,但于所述第一网络请求信息不同;所述服务器地址包括:path部分和查询字符串query_string部分。例如,将dictvaluestr1、dictvaluestr2等字符串与http://服务器地址/api进行拼接即形成第二网络请求信息Sorturl。所述http://服务器地址/api即为所述服务器地址的path部分。
获取到第二网络请求信息Sorturl后,利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。其中,所述对称加密算法可以是MD5算法中的getNewToken函数。所述第一接口参数为客户端计算得出的令牌token值。
具体地,解析所述第二网络请求信息Sorturl,获取服务器地址前半部分path部分及第一查询字符串query_string1;
将所述第一查询字符串query_string1中的参数按照预设的第二排序规则进行排序,然后将第一查询字符串query_string1中的参数按顺序***“=”和“&”进行加密形成所述第二查询字符串query_string2。其中,所述第二排序规则可以是按照名称排序。
根据所述第二查询字符串query_string2生成第四网络请求信息;具体地,利用字符串拼接的方式,拼接服务器地址的前半部分path部分和第二查询字符串query_string2,并在path部分和第二查询字符串部分query_string2之间***“?”进行加密,形成第四网络请求信息urll。
利用对称算法基于更新后的所述第四网络请求信息中的第二查询字符query_string2生成摘要信息digest;其中,所述摘要信息digest中第一个参数是私钥SECRET_KEY,第二个参数即为第四网络请求信息url1。其中,本实施例中的对称算法是HMAC_SHA1算法。
获取到摘要信息digest后,对所述摘要信息digest进行加密处理;具体地,对摘要信息digest进行base64编码处理,将编码处理后的摘要信息digest进行安全处理,比如将摘要信息digest中的字符“/”替换成“_”;将字符“+”替换成“-”;当然,这只是其中的一种替换方式,在此不做限定。
最后将预设密钥的明文信息ACCESS_KEY与加密处理后的摘要信息digest进行拼接,所述明文信息与加密处理后的摘要信息digest之间通过“:”连接,形成所述第一接口参数。
当生成第一接口参数之后,根据所述第二网络请求信息Sorturl及所述第一接口参数生成第三网络请求信息;具体地是将第一接口参数Token拼接值所述第二网络请求信息Sorturl之后,即形成所述第三网络请求信息TokenUrl,并将所述第三网络请求信息TokenUrl发送至服务器。其中,所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同。
比如,所述第三网络请求信息TokenUrl=http://服务器地址/api?e=14696&method=get-code&mobile=1355408****%%%%%&token=********************
S2,服务器基于所述第三网络请求信息计算第二接口参数,判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息。
本步骤中,当所述服务器接收到第三网络请求信息TokenUrl后,通过Token关键字对所述第三网络请求信息TokenUrl进行解析,获取第三网络请求信息TokenUrl中Token后的值,基于所述Token后的值利用与客户端获取第一接口参数同样的方法获取第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息。这里,所述第二接口参数是服务器计算出的令牌token值,因服务器获取第二接口参数与客户端获取第一接口参数的过程一样,在此不再赘述。
并且,在向所述客户端发送验证信息时,为了避免频繁恶意发送,需要按照预设的发送次数进行发送。所述预设的发送次数可以根据实际场景进行设置,本实施例中设置的发送次数为10次。
实施例二
本实施例提供一种发送验证信息的方法,所述方法基于客户端侧,如图3所示,所述方法包括:
S301,客户端获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数。
本步骤中,客户端获取第一网络请求信息,获取到第一网络请求信息后,根据所述第一网络请求信息生成第二网络请求信息及第一接口参数,具体包括:
因第一网络请求信息是在字典dict中的,客户端首先从字典dict中获取时间参数的字符串,比如,所述时间参数的字符串可以为e=14696&method=get-code&mobile=1355408****;其中,e,method,mobile是一个字典dict的键值key;1469,get-code,1355408****是字典dict的数值value。其中,所述第一网络请求信息是统一资源定位符URL。
当获取到时间参数字符串的所有的键值key后,按照预设的第一排序规则对所述键值key进行排序,获取键值数组;所述第一排序规则可以利用ortedArrayUsingComparator排序方法生成,利用ortedArrayUsingComparator排序方法即可生成一个有顺序的键值数组array。所述键值数组array中的键值key可以是按照升序排序,也可以是按照降序排序,本实施例中是按照升序a-z进行排序。
当获取到键值数组后,利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串,将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
具体地,利用objectAtIndex方法取出键值数组中的第一个键值key1,利用映射关系通过所述第一个键值key1从字典dict中取出第一个数值value1,然后将第一个键值key1和第一个数值value1拼接成一个新的字符串dictvaluestr1;依此类推,将所有的键值都转化为dictvaluestr类型的字符串,最后将所有dictvaluestr类型的字符串进行拼接,形成所述数值的字符串。
然后将数值的字符串与服务器地址的path部分进行拼接形成第二网络请求信息Sorturl;其中,所述第二网络请求信息其实也是一个URL,但于所述第一网络请求信息不同;所述服务器地址包括:path部分和查询字符串query_string部分。例如,将dictvaluestr1、dictvaluestr2等字符串与http://服务器地址/api进行拼接即形成第二网络请求信息Sorturl。所述http://服务器地址/api即为所述服务器地址的path部分。
获取到第二网络请求信息Sorturl后,利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。其中,所述对称加密算法可以是MD5算法中的getNewToken函数。所述第一接口参数为客户端计算得出的令牌token值。
具体地,解析所述第二网络请求信息Sorturl,获取服务器地址前半部分path部分及第一查询字符串query_string1;
将所述第一查询字符串query_string1中的参数按照预设的第二排序规则进行排序,然后将第一查询字符串query_string1中的参数按顺序***“=”和“&”进行加密形成所述第二查询字符串query_string2。其中,所述第二排序规则可以是按照名称排序。
根据所述第二查询字符串query_string2生成第四网络请求信息;具体地,利用字符串拼接的方式,拼接服务器地址的前半部分path部分和第二查询字符串query_string2,并在path部分和第二查询字符串部分query_string2之间***“?”进行加密,形成第四网络请求信息urll。
利用对称算法基于更新后的所述第四网络请求信息中的第二查询字符query_string2生成摘要信息digest;其中,所述摘要信息digest中第一个参数是私钥SECRET_KEY,第二个参数即为第四网络请求信息url1。其中,本实施例中的对称算法是HMAC_SHA1算法。
获取到摘要信息digest后,对所述摘要信息digest进行加密处理;具体地,对摘要信息digest进行base64编码处理,将编码处理后的摘要信息digest进行安全处理,比如将摘要信息digest中的字符“/”替换成“_”;将字符“+”替换成“-”;当然,这只是其中的一种替换方式,在此不做限定。
最后将预设密钥的明文信息ACCESS_KEY与加密处理后的摘要信息digest进行拼接,所述明文信息与加密处理后的摘要信息digest之间通过“:”连接,形成所述第一接口参数。
S302,根据所述第二网络请求信息及所述第一接口参数生成第三网络请求信息。
本步骤中,当生成第一接口参数之后,根据所述第二网络请求信息Sorturl及所述第一接口参数生成第三网络请求信息;具体地是将第一接口参数拼接值所述第二网络请求信息Sorturl之后,即形成所述第三网络请求信息TokenUrl,比如,所述第三网络请求信息TokenUrl=http://服务器地址/api?e=14696&method=get-code&mobile=1355408****%%%%%&token=********************;其中,所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同。
S303,将所述第三网络请求信息发送至服务器。
本步骤中,当客户端生成第三网络请求信息后,并将所述第三网络请求信息TokenUrl发送至服务器。
当所述服务器接收到第三网络请求信息TokenUrl后,通过Token关键字对所述第三网络请求信息TokenUrl进行解析,获取第三网络请求信息TokenUrl中Token后的值,基于所述Token后的值利用与客户端获取第一接口参数Token同样的方法获取第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息。这里,所述第二接口参数是服务器计算出的令牌token值,因服务器获取第二接口参数与客户端获取第一接口参数的过程一样,在此不再赘述。
并且,在向所述客户端发送验证信息时,为了避免频繁恶意发送,需要按照预设的发送次数进行发送。所述预设的发送次数可以根据实际场景进行设置,本实施例中设置的发送次数为10次。
实施例三
相应于实施例一,本实施例提供了一种发送验证信息的***,参见图1,所述***包括:客户端101和服务器102;在发送验证信息时,具体实现如下:
所述客户端101获取第一网络请求信息,获取到第一网络请求信息后,根据所述第一网络请求信息生成第二网络请求信息及第一接口参数,具体包括:
因第一网络请求信息URL是在字典dict中的,客户端101首先从字典dict中获取时间参数的字符串,比如,所述时间参数的字符串可以为e=14696&method=get-code&mobile=1355408****;其中,e,method,mobile是一个字典dict的键值key;1469,get-code,1355408****是字典dict的数值value。其中,所述第一网络请求信息是统一资源定位符URL。
当获取到时间参数字符串的所有的键值key后,按照预设的第一排序规则对所述键值key进行排序,获取键值数组;所述第一排序规则可以利用ortedArrayUsingComparator排序方法生成,利用ortedArrayUsingComparator排序方法即可生成一个有顺序的键值数组array。所述键值数组array中的键值key可以是按照升序排序,也可以是按照降序排序,本实施例中是按照升序a-z进行排序。
当获取到键值数组后,利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串,将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
具体地,利用objectAtIndex方法取出键值数组中的第一个键值key1,利用映射关系通过所述第一个键值key1从字典dict中取出第一个数值value1,然后将第一个键值key1和第一个数值value1拼接成一个新的字符串dictvaluestr1;依此类推,将所有的键值都转化为dictvaluestr类型的字符串,最后将所有dictvaluestr类型的字符串进行拼接,形成所述数值的字符串。
然后将数值的字符串与服务器地址的path部分进行拼接形成第二网络请求信息Sorturl;其中,所述第二网络请求信息其实也是一个URL,但于所述第一网络请求信息不同;所述服务器地址包括:path部分和查询字符串query_string部分。例如,将dictvaluestr1、dictvaluestr2等字符串与http://服务器地址/api进行拼接即形成第二网络请求信息Sorturl。所述http://服务器地址/api即为所述服务器地址的path部分。
获取到第二网络请求信息Sorturl后,利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。其中,所述对称加密算法可以是MD5算法中的getNewToken函数。所述第一接口参数为客户端计算得出的令牌token值。
具体地,解析所述第二网络请求信息Sorturl,获取服务器地址前半部分path部分及第一查询字符串query_string1;
将所述第一查询字符串query_string1中的参数按照预设的第二排序规则进行排序,然后将第一查询字符串query_string1中的参数按顺序***“=”和“&”进行加密形成所述第二查询字符串query_string2。其中,所述第二排序规则可以是按照名称排序。
根据所述第二查询字符串query_string2生成第四网络请求信息;具体地,利用字符串拼接的方式,拼接服务器地址的前半部分path部分和第二查询字符串query_string2,并在path部分和第二查询字符串部分query_string2之间***“?”进行加密,形成第四网络请求信息urll。
利用对称算法基于更新后的所述第四网络请求信息中的第二查询字符query_string2生成摘要信息digest;其中,所述摘要信息digest中第一个参数是私钥SECRET_KEY,第二个参数即为第四网络请求信息url1。其中,本实施例中的对称算法是HMAC_SHA1算法。
获取到摘要信息digest后,对所述摘要信息digest进行加密处理;具体地,对摘要信息digest进行base64编码处理,将编码处理后的摘要信息digest进行安全处理,比如将摘要信息digest中的字符“/”替换成“_”;将字符“+”替换成“-”;当然,这只是其中的一种替换方式,在此不做限定。
最后将预设密钥的明文信息ACCESS_KEY与加密处理后的摘要信息digest进行拼接,所述明文信息与加密处理后的摘要信息digest之间通过“:”连接,形成所述第一接口参数。
当生成第一接口参数之后,根据所述第二网络请求信息Sorturl及所述第一接口参数生成第三网络请求信息;具体地是将第一接口参数拼接值所述第二网络请求信息Sorturl之后,即形成所述第三网络请求信息TokenUrl,并将所述第三网络请求信息TokenUrl发送至服务器。其中,所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同。
比如,所述第三网络请求信息TokenUrl=http://服务器地址/api?e=14696&method=get-code&mobile=1355408****%%%%%&token=********************
当所述服务器102接收到第三网络请求信息TokenUrl后,通过Token关键字对所述第三网络请求信息TokenUrl进行解析,获取第三网络请求信息TokenUrl中Token后的值,基于所述Token后的值利用与客户端获取第一接口参数同样的方法获取第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端101发送所述验证信息。这里,所述第二接口参数是服务器计算出的令牌token值,因服务器102获取第二接口参数与客户端101获取第一接口参数的过程一样,在此不再赘述。
并且,在向所述客户端101发送验证信息时,为了避免频繁恶意发送,需要按照预设的发送次数进行发送。所述预设的发送次数可以根据实际场景进行设置,本实施例中设置的发送次数为10次。
实施例四
相应于实施例二,本实施例还提供一种客户端,如图4所示,所述客户端包括:获取单元41、第一生成单元42、第二生成单元43、发送单元44;其中,
所述获取单元41用于获取第一网络请求信息;因第一网络请求信息是在字典dict中的,客户端首先从字典dict中获取时间参数的字符串,比如,所述时间参数的字符串可以为e=14696&method=get-code&mobile=1355408****;其中,e,method,mobile是一个字典dict的键值key;1469,get-code,1355408****是字典dict的数值value。其中,所述第一网络请求信息是统一资源定位符URL。
当所述获取单元41获取到第一网络请求信息后,第一生成单元42用于根据所述第一网络请求信息生成第二网络请求信息及第一接口参数。
具体地,参见图5,所述第一生成单元42包括:第一获取子单元51、转换子单元52、拼接子单元53及第二获取子单元54;其中,
当第一获取子单元51获取到时间参数字符串的所有的键值key后,按照预设的第一排序规则对所述键值key进行排序,获取键值数组;所述第一排序规则可以利用ortedArrayUsingComparator排序方法生成,利用ortedArrayUsingComparator排序方法即可生成一个有顺序的键值数组array。所述键值数组array中的键值key可以是按照升序排序,也可以是按照降序排序,本实施例中是按照升序a-z进行排序。
当获取到键值数组后,所述转换子单元52利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串,所述拼接子单元53用于将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;所述第二获取子单元54利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
具体地,所述转换子单元52利用objectAtIndex方法取出键值数组中的第一个键值key1,利用映射关系通过所述第一个键值key1从字典dict中取出第一个数值value1,然后将第一个键值key1和第一个数值value1拼接成一个新的字符串dictvaluestr1;依此类推,将所有的键值都转化为dictvaluestr类型的字符串,最后将所有dictvaluestr类型的字符串进行拼接,形成所述数值的字符串。
然后所述拼接子单元53将数值的字符串与服务器地址的path部分进行拼接形成第二网络请求信息Sorturl;其中,所述第二网络请求信息其实也是一个URL,但于所述第一网络请求信息不同;所述服务器地址包括:path部分和查询字符串query_string部分。例如,将dictvaluestr1、dictvaluestr2等字符串与http://服务器地址/api进行拼接即形成第二网络请求信息Sorturl。所述http://服务器地址/api即为所述服务器地址的path部分。
当所述第二获取子单元54获取到第二网络请求信息Sorturl后,利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数Token。其中,所述对称加密算法可以是MD5算法中的getNewToken函数。所述第一接口参数为客户端计算得出的令牌token值。
这里,所述第二获取子单元54获取到第二网络请求信息Sorturl后,利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数Token具体包括:
所述第二获取子单元54解析所述第二网络请求信息Sorturl,获取服务器地址前半部分path部分及第一查询字符串query_string1;
将所述第一查询字符串query_string1中的参数按照预设的第二排序规则进行排序,然后将第一查询字符串query_string1中的参数按顺序***“=”和“&”进行加密形成所述第二查询字符串query_string2。其中,所述第二排序规则可以是按照名称排序。
根据所述第二查询字符串query_string2生成第四网络请求信息;具体地,利用字符串拼接的方式,拼接服务器地址的前半部分path部分和第二查询字符串query_string2,并在path部分和第二查询字符串部分query_string2之间***“?”进行加密,形成第四网络请求信息urll。
利用对称算法基于更新后的所述第四网络请求信息中的第二查询字符query_string2生成摘要信息digest;其中,所述摘要信息digest中第一个参数是私钥SECRET_KEY,第二个参数即为第四网络请求信息url1。其中,本实施例中的对称算法是HMAC_SHA1算法。
获取到摘要信息digest后,对所述摘要信息digest进行加密处理;具体地,对摘要信息digest进行base64编码处理,将编码处理后的摘要信息digest进行安全处理,比如将摘要信息digest中的字符“/”替换成“_”;将字符“+”替换成“-”;当然,这只是其中的一种替换方式,在此不做限定。
最后将预设密钥的明文信息ACCESS_KEY与加密处理后的摘要信息digest进行拼接,所述明文信息与加密处理后的摘要信息digest之间通过“:”连接,形成所述第一接口参数。
当所述第一生成单元42生成第一接口参数后,第二生成单元43用于根据所述第二网络请求信息及所述第一接口参数生成第三网络请求信息;具体地是将第一接口参数Token拼接值所述第二网络请求信息Sorturl之后,即形成所述第三网络请求信息TokenUrl,其中,所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同。
比如,所述第三网络请求信息TokenUrl=http://服务器地址/api?e=14696&method=get-code&mobile=1355408****%%%%%&token=********************
所述发送单元44用于将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并当确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息。
当所述服务器接收到第三网络请求信息TokenUrl后,通过Token关键字对所述第三网络请求信息TokenUrl进行解析,获取第三网络请求信息TokenUrl中Token后的值,基于所述Token后的值利用与客户端获取第一接口参数Token同样的方法获取第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息。这里,所述第二接口参数是服务器计算出的令牌token值,因服务器获取第二接口参数Token1与客户端获取第一接口参数Token的过程一样,在此不再赘述。
并且,在向所述客户端发送验证信息时,为了避免频繁恶意发送,需要按照预设的发送次数进行发送。所述预设的发送次数可以根据实际场景进行设置,本实施例中设置的发送次数为10次。
本发明提供的一个或多个实施例带来的有益效果是:
本发明提供了一种发送验证信息的方法及***,所述方法包括:客户端获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;所述第一网络请求信息与所述第二网络请求信息为统一资源定位符,且所述第一网络请求信息与所述第二网络请求信息不同;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息;将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;所述第一接口参数与所述第二接口参数为令牌值;如此,即使用户利用脚本软件抓取并更换第一网络请求信息中的电话号码,也不能频繁或攻击性地向该电话号码发送验证信息,并且,由于预设有发送的次数,即使用户随便编造一个有效的手机号码,不停地进行接收验证信息,但只要超过预设的发送次数时,就会被服务器忽略,这样就降低了恶意重发验证信息的几率,并且也无需输入难以辨认的验证码进行验证,进而提高了用户的操作效率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种发送验证信息的方法,其特征在于,所述方法包括:
客户端获取第一网络请求信息;
根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;
将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息;
将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一网络请求信息生成第二网络请求信息及第一接口参数,包括:
从字典中获取所述第一网络请求信息中的时间参数字符串;
获取所述时间参数字符串的键值key,每个键值对应一个数值;
按照预设的第一排序规则对所述键值进行排序,获取键值数组;
利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串;
将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;
利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
3.如权利要求2所述的方法,其特征在于,所述利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数,包括:
解析所述第二网络请求信息,获取服务器地址及第一查询字符串;
将所述第一查询字符串中的参数按照预设的第二排序规则进行排序,形成所述第二查询字符串;
根据所述第二查询字符串生成第四网络请求信息;
利用对称算法基于所述第四网络请求信息生成摘要信息;
对所述摘要信息进行加密处理;
将预设密钥的明文信息与加密处理后的摘要信息进行拼接,形成所述第一接口参数。
4.一种发送验证信息的方法,其特征在于,所述方法包括:
客户端获取第一网络请求信息;
根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息,并将所述第三网络请求信息发送至服务器;
服务器基于所述第三网络请求信息计算第二接口参数,判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息;其中,
所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
5.如权利要求4所述的方法,其特征在于,所述服务器向所述客户端发送所述验证信息时,按照预设的发送次数进行发送。
6.一种客户端,其特征在于,所述客户端包括:
获取单元,用于获取第一网络请求信息;
第一生成单元,用于根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;第二生成单元,用于根据所述第二网络请求信息及所述第一接口参数生成第三网络请求信息;
发送单元,用于将所述第三网络请求信息发送至服务器,使得所述服务器能基于所述第三网络请求信息计算第二接口参数,并当确定所述第二接口参数及所述第一接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
7.如权利要求6所述的客户端,其特征在于,所述第一生成单元包括:
第一获取子单元,用于从字典中获取所述第一网络请求信息中的时间参数字符串;
获取所述时间参数字符串的键值key,每个键值对应一个数值;
按照预设的第一排序规则对所述键值进行排序,获取键值数组;
转换子单元,用于利用所述键值与所述数值之间的映射关系将所述键值数组转换为所述数值的字符串;
拼接子单元,用于将所述数值的字符串与服务器地址进行拼接获取所述第二网络请求信息;
第二获取子单元,用于利用对称加密算法从所述第二网络请求信息中获取所述第一接口参数。
8.如权利要求7所述的客户端,其特征在于,所述第二获取子单元利用MD5算法从所述第二网络请求信息中获取所述第一接口参数,包括:
解析所述第二网络请求信息,获取服务器地址及第一查询字符串;
将所述第一查询字符串中的参数按照预设的第二排序规则进行排序,形成所述第二查询字符串;
根据所述第二查询字符串生成第四网络请求信息;
利用对称算法基于所述第四网络请求信息生成摘要信息;
对所述摘要信息进行加密处理;
将预设密钥的明文信息与加密处理后的摘要信息进行拼接,形成所述第一接口参数。
9.一种发送验证信息的***,其特征在于,所述***包括:
客户端,用于获取第一网络请求信息;根据所述第一网络请求信息生成第二网络请求信息及第一接口参数;将所述第二网络请求信息及所述第一接口参数进行拼接生成第三网络请求信息,并将所述第三网络请求信息发送至服务器;服务器,用于基于所述第三网络请求信息计算第二接口参数,判断所述第一接口参数与所述第二接口参数是否一致,若确定所述第一接口参数及所述第二接口参数一致时,向所述客户端发送所述验证信息;其中,所述第一网络请求信息、所述第二网络请求信息与所述第三网络请求信息为统一资源定位符,且所述第一网络请求信息、所述第二网络请求信息及所述第三网络请求信息不同;所述第一接口参数与所述第二接口参数为令牌值。
10.如权利要求9所述的***,其特征在于,所述服务器向所述客户端发送所述验证信息时,按照预设的发送次数进行发送。
CN201611228347.7A 2016-12-27 2016-12-27 一种发送验证信息的方法及*** Active CN108243172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611228347.7A CN108243172B (zh) 2016-12-27 2016-12-27 一种发送验证信息的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611228347.7A CN108243172B (zh) 2016-12-27 2016-12-27 一种发送验证信息的方法及***

Publications (2)

Publication Number Publication Date
CN108243172A true CN108243172A (zh) 2018-07-03
CN108243172B CN108243172B (zh) 2020-08-04

Family

ID=62702639

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611228347.7A Active CN108243172B (zh) 2016-12-27 2016-12-27 一种发送验证信息的方法及***

Country Status (1)

Country Link
CN (1) CN108243172B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112566121A (zh) * 2020-12-09 2021-03-26 北京深思数盾科技股份有限公司 一种防止攻击的方法及服务器、电子设备、存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997880A (zh) * 2010-12-01 2011-03-30 湖南智源信息网络技术开发有限公司 一种用于网络页面或接口的安全验证方法及其装置
CN102868533A (zh) * 2012-09-13 2013-01-09 中科华核电技术研究院有限公司 资源访问授权验证方法及***
CN103795692A (zh) * 2012-10-31 2014-05-14 中国电信股份有限公司 开放授权方法、***与认证授权服务器
CN104348849A (zh) * 2013-07-25 2015-02-11 腾讯科技(深圳)有限公司 即时通讯键-值数据下发方法、服务器、客户端及***
US9239912B1 (en) * 2011-12-12 2016-01-19 Google Inc. Method, manufacture, and apparatus for content protection using authentication data
CN105407102A (zh) * 2015-12-10 2016-03-16 四川长虹电器股份有限公司 http请求数据可靠性验证方法
CN105703910A (zh) * 2016-04-18 2016-06-22 中邮建技术有限公司 基于微信服务号的动态令牌验证方法
CN105978878A (zh) * 2016-05-11 2016-09-28 腾讯科技(深圳)有限公司 网页验证方法及装置
CN106161411A (zh) * 2015-04-27 2016-11-23 阿里巴巴集团控股有限公司 一种网页验证方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997880A (zh) * 2010-12-01 2011-03-30 湖南智源信息网络技术开发有限公司 一种用于网络页面或接口的安全验证方法及其装置
US9239912B1 (en) * 2011-12-12 2016-01-19 Google Inc. Method, manufacture, and apparatus for content protection using authentication data
CN102868533A (zh) * 2012-09-13 2013-01-09 中科华核电技术研究院有限公司 资源访问授权验证方法及***
CN103795692A (zh) * 2012-10-31 2014-05-14 中国电信股份有限公司 开放授权方法、***与认证授权服务器
CN104348849A (zh) * 2013-07-25 2015-02-11 腾讯科技(深圳)有限公司 即时通讯键-值数据下发方法、服务器、客户端及***
CN106161411A (zh) * 2015-04-27 2016-11-23 阿里巴巴集团控股有限公司 一种网页验证方法及装置
CN105407102A (zh) * 2015-12-10 2016-03-16 四川长虹电器股份有限公司 http请求数据可靠性验证方法
CN105703910A (zh) * 2016-04-18 2016-06-22 中邮建技术有限公司 基于微信服务号的动态令牌验证方法
CN105978878A (zh) * 2016-05-11 2016-09-28 腾讯科技(深圳)有限公司 网页验证方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JOSHUA1830: "防止恶意频繁发送短信验证码", 《HTTP://BLOG.CSDN.NET/JOSHUA1830/ARTICLE/DETAILS/51780768》 *
魏冰,徐震: "基于验证机制的应用层DDoS攻击防御方法", 《计算机工程与设计》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112566121A (zh) * 2020-12-09 2021-03-26 北京深思数盾科技股份有限公司 一种防止攻击的方法及服务器、电子设备、存储介质

Also Published As

Publication number Publication date
CN108243172B (zh) 2020-08-04

Similar Documents

Publication Publication Date Title
CN108365961B (zh) 接口调用方法及终端设备、接口调用的响应方法及服务器
CN103618794B (zh) 自动登录的方法、终端及服务器
US10073916B2 (en) Method and system for facilitating terminal identifiers
CN105391695B (zh) 一种终端注册方法及校验方法
CN105554037B (zh) 身份认证处理方法及服务平台
CN103155513B (zh) 加速认证的方法和装置
CN104468531B (zh) 敏感数据的授权方法、装置和***
CN107147644B (zh) 一种实现移动app用户在单一设备登录的方法
WO2018018697A1 (zh) 伪基站垃圾短信鉴别方法及***
CN110291757A (zh) 用于提供简化帐户注册服务、用户认证服务的方法及利用其的认证服务器
CN103607284B (zh) 身份认证方法及设备、服务器
CN110521182B (zh) 用于协议级身份映射的方法和***
CN107801229A (zh) 智能家居配网方法、终端、设备及具有存储功能的装置
US11997188B2 (en) Method and system for HTTP session management using hash chains
CN105119722A (zh) 一种身份验证方法、设备及***
CN105490997B (zh) 安全校验方法、装置、终端及服务器
CN109688098A (zh) 数据的安全通信方法、装置、设备及计算机可读存储介质
CN102946384A (zh) 用户验证方法和设备
CN111404695B (zh) 令牌请求验证方法和装置
CN105162604A (zh) 一种基于特征图像识别的验证方法、服务器及***
CN104821882A (zh) 一种基于语音生物特征的网络安全验证方法
CN108174360A (zh) 一种短信发送方法及装置、短信验证方法及装置
CN109525949A (zh) 注册方法及装置、存储介质、服务器、用户终端
CN110233850A (zh) 基于联盟链的注册方法、应用服务器、用户端以及***
CN108243172A (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
GR01 Patent grant
GR01 Patent grant