本发明涉及通信技术领域,尤其涉及一种信息获取方法、终端及服务器。
背景技术
应用程序编程接口(applicationprogramminginterface,api)服务是一种基于api接口的调用以获取相应服务的方式。
相关技术中,用户通过网页登录预先建立的web系统,输入所请求服务的服务参数信息,然后终端对所输入的服务参数信息进行加密,随后发送至所请求服务的服务器以获取相应的服务反馈信息,即用户所需要的数据信息。
然而,由于这种通过网页的信息获取方法是基于统一资源定位符(uniformresourelocator,url)进行的,因此当攻击者截获了合法用户的url进行仿冒,然后用大量仿冒的url对服务器发起攻击时,就会造成服务器瘫痪,因此安全性较低。
技术实现要素:
为了解决上述技术问题,本发明提供一种信息获取方法,能够有效验证使用者的身份,提高安全性。
为了达到本发明目的,本发明提供了一种信息获取方法,包括:
终端获取用户在预设应用程序中的身份信息、目标应用程序在所述预设应用程序中的标识信息以及所述用户在所述目标应用程序中输入的服务参数信息;其中,所述目标应用程序为基于所述预设应用程序开发的能够提供多种api服务的应用程序;
所述终端根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码;
所述终端向提供所述用户期望服务的服务器发送所述身份信息、所述标识信息、所述服务参数信息以及所述第一鉴权码,使得所述服务器根据所述身份信息、所述标识信息和所述服务参数信息生成第二鉴权码;
当所述服务器确定所述第一鉴权码与所述第二鉴权码相同时,所述终端接收所述服务器发送的服务反馈信息
所述终端根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码,包括:
所述终端以第一预设加密算法加密所述身份信息和所述标识信息,得到第一密钥;
所述终端以第二预设加密算法加密所述第一密钥和所述服务参数信息,得到所述第一鉴权码。
所述第一预设加密算法包括:高级加密标准(英语:advancedencryptionstandard,aes)算法与第一预设消息摘要算法(messagedigestalgorithm,md)的组合加密算法;其中,所述aes算法的加密密钥为所述终端与所述服务器预先商定的;所述第二预设加密算法包括:第二预设md算法。
当所述预设应用程序为微信小程序时,所述身份信息为微信账号,所述标识信息为所述微信小程序分配给所述目标应用程序的标识号。
本发明还提供了一种信息获取方法,包括:
服务器接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,所述身份信息为用户在预设应用程序中的身份信息,所述标识信息为目标应用程序在所述预设应用程序中的标识信息,所述目标应用程序为基于所述预设应用程序开发的能够提供多种api服务的应用程序,所述第一鉴权码为所述终端根据所述身份信息、所述标识信息和所述服务参数信息生成的;
所述服务器根据所述身份信息、所述标识信息和所述服务参数信息生成第二鉴权码;
当所述服务器确定所述第二鉴权码与所述第一鉴权码相同时,所述服务器根据所述服务参数信息获取服务反馈信息;
向所述终端发送获得的服务反馈信息。
所述服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码,包括:
所述服务器以第一预设加密算法加密所述身份信息和所述标识信息,得到第二密钥;
所述服务器以第二预设加密算法加密所述第二密钥和所述服务参数信息,得到所述第二鉴权码。
所述第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,所述aes算法的加密密钥为所述服务器与所述终端预先商定的;所述第二预设加密算法包括:第二预设md算法。
当所述预设应用程序为微信小程序时,所述身份信息为微信账号,所述标识信息为所述微信小程序分配给所述目标应用程序的标识号。
本发明还提供了一种终端,包括:
第一获取模块,用于获取用户在预设应用程序中的身份信息、目标应用程序在所述预设应用程序中的标识信息以及所述用户在所述目标应用程序中输入的服务参数信息;其中,所述目标应用程序为基于所述预设应用程序开发的能够提供多种api服务的应用程序;
第一处理模块,用于根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码;
第一发送模块,用于向提供所述用户期望服务的服务器发送所述身份信息、所述标识信息、所述服务参数信息以及所述第一鉴权码,使得所述服务器根据所述身份信息、所述标识信息和所述服务参数信息生成第二鉴权码;
第一接收模块,用于当所述服务器确定所述第一鉴权码与所述第二鉴权码相同时,接收所述服务器发送的服务反馈信息。
本发明还提供了一种服务器,包括:
第二接收模块,用于接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,所述身份信息为用户在预设应用程序中的身份信息,所述标识信息为目标应用程序在所述预设应用程序中的标识信息,所述目标应用程序为基于所述预设应用程序开发的能够提供多种api服务的应用程序,所述第一鉴权码为所述终端根据所述身份信息、所述标识信息和所述服务参数信息生成的;
第二处理模块,用于根据所述身份信息、所述标识信息和所述服务参数信息生成第二鉴权码;
第二获取模块,还用于当服务器确定所述第二鉴权码与所述第一鉴权码相同时,根据所述服务参数信息获取服务反馈信息;
第二发送模块,用于向所述终端发送获得的服务反馈信息。
与现有技术相比,本发明至少包括:终端获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息;其中,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序;根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码;向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码;当服务器确定第一鉴权码与第二鉴权码相同时,接收服务器发送的服务反馈信息。从本发明提供的技术方案可见,由于身份信息和标识信息表明了用户是预设应用程序中的合法用户且是通过预设应用程序进行信息获取的,从而有效地防止了攻击者仿冒用户身份,极大程度地提高了aip服务获取的安全性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的一种信息获取方法的流程示意图;
图2为本发明实施例提供的另一种信息获取方法的流程示意图;
图3为本发明实施例提供的一种终端的结构示意图;
图4为本发明实施例提供的一种服务器的结构示意图;
图5为本发明实施例提供的一种信息获取装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
本发明实施例提供一种信息获取方法,如图1所示,该方法包括:
步骤101、终端获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息。
其中,目标应用程序为基于预设应用程序开发的能够提供多种应用程序编程接口api服务的应用程序。
需要说明的是,服务参数信息为用户期望获得的服务的参数信息。
步骤102、终端根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码。
步骤103、终端向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码。
步骤104、当服务器确定第一鉴权码与第二鉴权码相同时,终端接收服务器发送的服务反馈信息。
可选地,步骤102可以通过步骤102a、102b实现:
步骤102a、终端以第一预设加密算法加密身份信息和标识信息,得到第一密钥。
步骤102b、终端以第二预设加密算法加密第一密钥和服务参数信息,得到第一鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为终端与服务器预先商定的;第二预设加密算法包括:第二预设md算法。
具体的,第一预设md算法和第二预设md算法可以是消息摘要算法第二版(messagedigestalgorithm2,md2)、消息摘要算法第四版(messagedigestalgorithm4,md4)、消息摘要算法第五版(messagedigestalgorithm5,md5)和消息摘要算法第六版(messagedigestalgorithm6,md6)中任意一种,其中md2和md4存在明显缺陷通常不被使用,md5是目前广泛使用的版本,不过其安全性多年前就开始被质疑,于是在2008年提出了md6算法,其后md6历经数次改进,目前还是试行方案阶段,未被正式使用。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
本发明实施例所提供的信息获取方法,终端获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息;其中,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序;根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码;向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码;当服务器确定第一鉴权码与第二鉴权码相同时,接收服务器发送的服务反馈信息。从本发明提供的技术方案可见,由于身份信息和标识信息表明了用户是预设应用程序中的合法用户且是通过预设应用程序进行信息获取的,从而有效地防止了攻击者仿冒用户身份,极大程度地提高了aip服务获取的安全性。
本发明实施例提供另一种信息获取方法,如图2所示,该方法包括:
步骤201、服务器接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码。
其中,身份信息为用户在预设应用程序中的身份信息,标识信息为目标应用程序在预设应用程序中的标识信息,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序,第一鉴权码为终端根据身份信息、标识信息和服务参数信息生成的。
步骤202、服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码。
步骤203、当服务器确定第二鉴权码与第一鉴权码相同时,服务器根据服务参数信息获取服务反馈信息。
步骤204、服务器向终端发送获得的服务反馈信息。
可选地,步骤202可以通过步骤202a、202b实现:
步骤202a、服务器以第一预设加密算法加密身份信息和标识信息,得到第二密钥。
步骤202b、服务器以第二预设加密算法加密第二密钥和服务参数信息,得到第二鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为服务器与终端预先商定的;第二预设加密算法包括:第二预设md算法。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
本发明实施例所提供的信息获取方法,服务器接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,身份信息为用户在预设应用程序中的身份信息,标识信息为目标应用程序在预设应用程序中的标识信息,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序,第一鉴权码为终端根据身份信息、标识信息和服务参数信息生成的;根据身份信息、标识信息和服务参数信息生成第二鉴权码;当第二鉴权码与第一鉴权码相同时,根据服务参数信息获取服务反馈信息;向终端发送获得的服务反馈信息。从本发明提供的技术方案可见,由于身份信息和标识信息表明了用户是预设应用程序中的合法用户且是通过预设应用程序进行信息获取的,从而有效地防止了攻击者仿冒用户身份,极大程度地提高了aip服务获取的安全性。
本发明实施例还提供一种终端,如图3所示,该终端3包括:
第一获取模块31,用于获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息;其中,目标应用程序为基于预设应用程序开发的且能够提供多种应用程序编程接口api服务的应用程序。
第一处理模块32,用于根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码。
第一发送模块33,用于向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码。
第一接收模块34,用于当服务器确定第一鉴权码与第二鉴权码相同时,接收服务器发送的服务反馈信息。
可选地,第一处理模块32具体用于:
以第一预设加密算法加密身份信息和标识信息,得到第一密钥。
以第二预设加密算法加密第一密钥和服务参数信息,得到第一鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为终端与服务器预先商定的;第二预设加密算法包括:第二预设md算法。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
本发明实施例所提供的终端,获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息;其中,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序;根据获得的身份信息、标识信息以及服务参数信息生成第一鉴权码;向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码;当服务器确定第一鉴权码与第二鉴权码相同时,接收服务器发送的服务反馈信息。从本发明提供的技术方案可见,由于身份信息和标识信息表明了用户是预设应用程序中的合法用户且是通过预设应用程序进行信息获取的,从而有效地防止了攻击者仿冒用户身份,极大程度地提高了aip服务获取的安全性。
在实际应用中,第一获取模块31、第一处理模块32、第一发送模块33和第一接收模块34均可由位于终端中的中央处理器(centralprocessingunit,cpu)、微处理器(microprocessorunit,mpu)、数字信号处理器(digitalsignalprocessor,dsp)或现场可编程门阵列(fieldprogrammablegatearray,fpga)等实现。
本发明实施例还提供一种服务器,如图4所示,该服务器4包括:
第二接收模块41,用于接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,身份信息为用户在预设应用程序中的身份信息,标识信息为目标应用程序在预设应用程序中的标识信息,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序,第一鉴权码为终端根据身份信息、标识信息和服务参数信息生成的。
第二处理模块42,用于根据身份信息、标识信息和服务参数信息生成第二鉴权码。
第二获取模块43,用于当服务器确定第二鉴权码与第一鉴权码相同时,根据服务参数信息获取服务反馈信息。
第二发送模块44,用于向终端发送获得的服务反馈信息。
可选地,第二处理模块42具体用于:
以第一预设加密算法加密身份信息和标识信息,得到第二密钥。
以第二预设加密算法加密第二密钥和服务参数信息,得到第二鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为服务器与终端预先商定的;第二预设加密算法包括:第二预设md算法。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
本发明实施例所提供的服务器,接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,身份信息为用户在预设应用程序中的身份信息,标识信息为目标应用程序在预设应用程序中的标识信息,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序,第一鉴权码为终端根据身份信息、标识信息和服务参数信息生成的;根据身份信息、标识信息和服务参数信息生成第二鉴权码;当服务器确定第二鉴权码与第一鉴权码相同时,根据服务参数信息获取服务反馈信息;向终端发送获得的服务反馈信息。从本发明提供的技术方案可见,由于身份信息和标识信息表明了用户是预设应用程序中的合法用户且是通过预设应用程序进行信息获取的,从而有效地防止了攻击者仿冒用户身份,极大程度地提高了aip服务获取的安全性。
在实际应用中,第二接收模块41、第二处理模块42、第二获取模块43和第二发送模块44均可由位于服务器中的cpu、mpu、dsp或fpga等实现。
本发明实施例还提供一种信息获取装置,如图5所示,应用该装置实现信息获取的方法包括:
步骤1、用户通过扫描二维码或者好友分享链接进入登录本发明系统微信小程序。
步骤2、用户进入本发明系统微信小程序页面入口。
步骤3、微信小程序判断是否已注册用户,若是,跳过本步骤。若否:用户填写手机号等核心注册信息,调用注册逻辑单元,执行步骤4。
步骤4、用户填写登录信息。
步骤5、调用登录逻辑单元。
步骤6、进入本发明微信“api使用页面”。
步骤7、用户选择所需企业通信服务。
步骤8、在页面填写企业通信服务调用参数。
步骤9、点击使用按钮。
步骤10、调用小程序密钥生成单元。
步骤11、小程序后台定时任务访问api服务接口告知鉴权码匹配判断单元最新密钥。
步骤12、api服务接口的鉴权码加工单元获取小程序密钥。
步骤13、小程序密钥生成单元将小程序id、用户微信号、当前时间基于aes及md5加密技术、按字段名逆序规则生成密钥。
步骤14、鉴权码加工单元将步骤13生成密钥与api调用参数通过md5加密成鉴权码。
步骤15、生成的鉴权码具有唯一微信id等特征,安全性更高,将此参数请求api服务接口请求单元。
步骤16、api服务接口请求单元通过安全超文本传输协议(hypertexttransferprotocoloversecuresocketlayer,https)请求api服务接口,发送小程序id、用户微信号、当前时间、api调用参数及鉴权码给api服务接口。
步骤17、api服务接口的参数获取单元获取小程序id、用户微信号、当前时间、api调用参数及鉴权码。
步骤18、参数获取单元发送小程序id、用户微信号、当前时间、api调用参数给鉴权码加工单元。
步骤19、鉴权码加工单元将程序id、用户微信号、当前时间、api调用参数通过aes和md5加密成鉴权码并发送给鉴权码匹配判断单元。
步骤20、参数获取单元发送鉴权码给鉴权码匹配判断单元。
步骤21、鉴权码匹配判断单元判断小程序鉴权码与api服务接口生成的鉴权码是否一致,若否则返回步骤6,若是则继续。
步骤22、调用api服务接口。
步骤23、api服务接口判断该用户是否企业用户,若是,跳过步骤24、25继续执行,若否,继续执行。
步骤24、api服务接口判断该用户是否初次登录,若否,跳过步骤25继续执行,若是,继续执行。
步骤25、分配调用额度(如,可调用api服务五次)。
步骤26、预扣减该用户额度。
步骤27、判断预扣减额度是否不足,若否,跳过步骤28,若是继续执行。
步骤28、添加反馈信息“额度不足,不可调用”,返回页面提示用户,返回步骤6。
步骤29、api接口服务单元执行服务程序并返回服务参数给服务消费单元。
步骤30、api接口服务单元扣减该用户额度。
步骤31、api接口服务单元返回参数及页面提示信息如:调用成功。
步骤32、调用完成。
本发明实施例还提供一种用于实现信息获取的装置,包括第一存储器和第一处理器,其中,第一存储器中存储有以下可被第一处理器执行的指令:
获取用户在预设应用程序中的身份信息、目标应用程序在预设应用程序中的标识信息以及用户在目标应用程序中输入的服务参数信息;其中,目标应用程序为基于预设应用程序开发的能够提供多种应用程序编程接口api服务的应用程序。
根据获得的身份信息、标识信息以及服务参数信息按生成第一鉴权码。
向提供用户期望服务的服务器发送身份信息、标识信息、服务参数信息以及第一鉴权码,使得服务器根据身份信息、标识信息和服务参数信息生成第二鉴权码。
当服务器确定第一鉴权码与第二鉴权码相同时,接收服务器发送的服务反馈信息。
可选地,第一存储器中具体存储有以下可被第一处理器执行的指令:
以第一预设加密算法加密身份信息和标识信息,得到第一密钥。
以第二预设加密算法加密第一密钥和服务参数信息,得到第一鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为终端与服务器预先商定的;第二预设加密算法包括:第二预设md算法。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
本发明实施例还提供一种用于实现信息获取的装置,包括第二存储器和第二处理器,其中,第二存储器中存储有以下可被第二处理器执行的指令:
接收终端发送的身份信息、标识信息、服务参数信息以及第一鉴权码;其中,身份信息为用户在预设应用程序中的身份信息,标识信息为目标应用程序在预设应用程序中的标识信息,目标应用程序为基于预设应用程序开发的能够提供多种api服务的应用程序,第一鉴权码为终端根据身份信息、标识信息和服务参数信息生成的。
根据身份信息、标识信息和服务参数信息生成第二鉴权码。
当服务器确定第二鉴权码与第一鉴权码相同时,根据服务参数信息获取服务反馈信息。
向终端发送获得的服务反馈信息。
可选地,第二存储器中具体存储有以下可被第二处理器执行的指令:
以第一预设加密算法加密身份信息和标识信息,得到第二密钥。
以第二预设加密算法加密第二密钥和服务参数信息,得到第二鉴权码。
可选地,第一预设加密算法包括:aes算法与第一预设md算法的组合加密算法;其中,aes算法的加密密钥为服务器与终端预先商定的;第二预设加密算法包括:第二预设md算法。
可选地,当预设应用程序为微信小程序时,身份信息为微信账号,标识信息为微信小程序分配给目标应用程序的标识号。
虽然本发明所揭露的实施方式如上,但的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。