软件应用程序发布和验证的方法及装置
技术领域
本发明涉及互联网领域,尤其涉及一种软件应用程序发布和验证的方法及装置。
背景技术
目前,软件应用程序的应用市场一般是由各个硬件厂商或者系统厂家提供,软件应用的开发商在开发出应用程序后,将应用程序发布到应用市场,以供客户端下载安装。
为了对软件应用的发布者进行身份认证,并且保证信息传输的完整性,现有的所有软件应用都要求用证书进行数字签名,客户端用户系统不会安装没有进行签名的软件应用。但是,由于软件应用的开发和提供下载不是同一主体,使得应用市场的提供商可以对软件应用的开发商提供的原始软件应用进行修改,并且自己签名,当软件应用进入客户端本地系统后,在执行安装之前,也无从得知新下载的软件应用是否被本地系统内的其他程序篡改。
由上可知,现有技术中,用户无从得知安装的软件应用是否为开发商原始提供的,同时应用程序的开发商对自己发布出去的软件应用也失去了控制权,损害了用户和开发商的相关利益。
发明内容
本发明的目的是提供一种软件应用程序发布和下载的方法及装置,用以解决现有技术无法验证软件开发商发布的软件应用与用户安装的软件应用是否一致的技术问题。
为了实现上述目的,本发明第一方面提供一种软件应用程序发布方法,所述方法应用于软件发布方发布软件应用程序的服务器,所述服务器是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,所述方法包括:
获取所述软件应用程序的信息记录,所述信息记录至少包括所述软件应用程序文件的哈希值;
根据所述发布方的私钥对所述信息记录进行签名,得到信息记录签名;所述信息记录签名用于验证发布所述软件应用程序的发布方是否被冒充,所述哈希值用于验证所述发布方发布的所述软件应用程序是否被修改;
将所述信息记录以及所述信息记录签名写入区块链的区块中,得到区块地址,其中,所述区块地址用于客户端在所述区块链中查找到所述区块。
本发明第二方面提供一种软件应用程序验证方法,所述方法应用于客户端,所述客户端是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,所述方法包括:
从应用市场获取第一软件应用程序对应的区块地址;
根据所述区块地址在区块链中查找对应的区块;
获取所述区块中存储的第二软件应用程序的信息记录以及信息记录签名,所述信息记录签名是发布方私钥签名所述信息记录得到的,所述信息记录至少包括所述第二软件应用程序的哈希值;
根据目标发布方的公钥对所述信息记录签名进行签名验证,其中,若签名验证成功,则表明所述第二软件应用程序是所述目标发布方发布的软件应用程序;
在签名验证成功后,根据所述哈希值确定所述第一软件应用程序文件是否与所述第二软件应用程序文件一致。
本发明第三方面提供一种发布软件应用程序的服务器,所述服务器是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,所述服务器包括:
获取单元,用于获取所述软件应用程序的信息记录,所述信息记录至少包括所述软件应用程序文件的哈希值;
加密单元,用于根据所述发布方的私钥对所述信息记录进行签名,得到信息记录签名;所述信息记录签名用于验证发布所述软件应用程序的发布方是否被冒充,所述哈希值用于验证所述发布方发布的所述软件应用程序是否被修改;
区块链写入单元,用于将所述信息记录以及所述信息记录签名写入区块链的区块中,得到区块地址,其中,所述区块地址用于客户端在所述区块链中查找到所述区块。
本发明第四方面提供一种客户端,所述客户端是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,所述客户端包括:
第一获取单元,用于从应用市场获取第一软件应用程序对应的区块地址;
查找单元,用于根据所述区块地址在区块链中查找对应的区块;
第二获取单元,用于获取所述区块中存储的第二软件应用程序的信息记录以及信息记录签名,所述信息记录签名是发布方私钥签名所述信息记录得到的,所述信息记录至少包括所述第二软件应用程序的哈希值;
签名验证单元,用于根据目标发布方的公钥对所述信息记录签名进行解密,其中,若签名验证成功则表明所述第二软件应用程序是所述目标发布方发布的软件应用程序;
确定单元,用于在签名验证成功后,根据所述哈希值确定所述第一软件应用程序文件是否与所述第二软件应用程序文件一致。
本发明第五方面提供一种发布软件应用程序的服务器,包括:
处理器、通信接口、存储器和通信总线;所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存储应用程序;
所述处理器用于执行所述应用程序以实现第一方面所述的方法。
本发明第六方面提供一种客户端,包括:
处理器、通信接口、存储器和通信总线;所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存储应用程序;
所述处理器用于执行所述应用程序以实现第二方面所述的方法。
本发明第七方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行第一方面所述的方法的指令。
本发明第八方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行第二方面所述的方法的指令。
采用上述技术方案,软件开发商在发布软件应用程序时,将至少包括软件应用程序文件的哈希值的信息记录进行私钥签名,并将签名前的信息记录和签名后得到的信息记录签名写入区块链的区块中。这样,客户端在获得某个区块存储的信息记录和信息记录签名后,可以根据目标发布方公布的公钥对区块中的信息记录签名进行签名验证,签名验证成功则表明该区块是目标发布方写入的,并根据信息记录中的哈希值验证客户端下载得到的软件应用程序是否与目标发布方发布的软件应用程序一致。由于区块链中写入的信息具备不可篡改的特性,从而使得客户端可以根据真实可信的私钥签名以及软件应用程序文件的哈希值,验证下载的软件应用程序是否为目标发布方发布的且未经修改的软件应用程序。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种软件应用程序发布方法的流程示意图;
图2为本发明实施例提供的一种软件应用程序验证方法的流程示意图;
图3为本发明实施例提供的一种实施环境的示意图;
图4为图3所示的实施环境中软件应用程序发布和验证方法的流程示意图;
图5A为本发明实施例提供的一种服务器的结构示意图;
图5B为本发明实施例提供的另一种服务器的结构示意图;
图6A为本发明实施例提供的一种客户端的结构示意图;
图6B为本发明实施例提供的另一种客户端的结构示意图;
图7为本发明实施例提供的又一种服务器的结构示意图;
图8为本发明实施例提供的又一种客户端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了使本领域技术人员更容易理解本发明实施例提供的技术方案,下面首先对本发明涉及到的相关技术进行简单介绍。
区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。区块链由其特别的区块和交易产生、验证协议,具有不可更改,不可伪造、完全可追溯的安全特性。
区块链技术中涉及到的相关概念说明:
用户身份:区块链中的用户身份使用公钥表示,所述公钥所对应的私钥由用户掌握而不发布到网络,公钥通过特定的哈希和编码后成为“地址”,“地址”代表了用户,并可随意发布。
区块链数据写入:区块链节点通过向区块链网络发布“交易”(Transaction)实现向区块链写入数据。交易中包含用户使用自己私钥对交易的签名,以证明用户的身份。交易被“矿工”(执行区块链共识竞争机制的区块链节点)记录入产生的新区块,然后发布到区块链网络,并被其他区块链节点验证通过和接受后,交易数据即被写入区块链。
区块链具有的特性:
去中心化:整个区块链系统没有中心化的硬件或者管理机构,任意节点之间的权利和义务都是均等的,且任一节点的损坏或者失去都会不影响整个系统的运作。因此也可以认为区块链具有极好的健壮性。
去信任化:参与整个区块链系统中的每个节点之间进行数据交换是无需互相信任的,整个系统的运作规则是公开透明的,所有的数据内容也是公开的,因此在系统指定的规则范围和时间范围内,节点之间是不能也无法欺骗其它节点。
基于区块链技术,本发明实施例提供一种软件应用程序的发布方法,如图1所示,该方法应用于发布软件应用程序的服务器,包括:
S101、服务器获取所述软件应用程序的信息记录,所述信息记录至少包括所述软件应用程序文件的哈希值。
S102、服务器根据所述发布方的私钥对所述信息记录进行签名,得到信息记录签名。
S103、服务器将所述信息记录以及所述信息记录签名写入区块链的区块中,得到区块地址,其中,所述区块地址用于客户端在所述区块链中查找到所述区块。
参照上述对区块链数据写入的介绍,该服务器区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,确保了该服务器至少具备参与区块链交易的功能。
采用上述方法,软件开发商在发布软件应用程序时,将包括软件应用程序文件的哈希值的信息记录进行私钥签名,并将签名前的信息记录和签名后得到的信息记录签名都写入区块链的区块中。其中,所述信息记录签名用于验证发布所述软件应用程序的区块发布方是否被冒充,所述哈希值用于验证所述发布方发布的所述软件应用程序是否被修改。这样,客户端在获得某个区块存储的信息记录和信息记录签名后,可以根据目标发布方公布的公钥该信息记录签名进行签名认证,签名认证成功则表明该区块是目标发布方写入的,并根据该信息记录中的哈希值验证客户端下载得到的软件应用程序是否与目标发布方发布的软件应用程序一致。由于区块链中写入的信息具备不可篡改的特性,从而使得客户端可以根据真实可信的私钥签名以及软件应用程序文件的哈希值,验证下载的软件应用程序是否为目标发布方发布的且未经修改的软件应用程序。
值得说明的是,所述信息记录还可以包括所述软件应用程序的下载地址。其中,所述下载地址用于客户端根据所述下载地址下载所述软件应用程序。具体地,所述下载地址可以是软件应用程序的源下载地址。
在本发明实施例的一种可能的实现方式中,服务器将应用程序的信息记录以及信息记录签名写入区块链的区块后,可以将得到的区块地址以及所述软件应用程序的名称发布到应用市场。这样,客户端在从公共网络下载到软件应用程序后,可以从应用市场查找得到该软件应用程序的区块地址,并根据该区块地址从区块链中获取到该信息记录以及信息记录签名。
在用于私钥签名的原始信息记录(即上述至少包括应用程序文件的哈希值的信息记录)中还包括下载地址的情况下,客户端可以首先根据软件应用程序的名称在应用市场搜索,得到该软件应用程序对应的区块地址,再根据该区块地址从区块链中得到该信息记录以及信息记录签名,这样,客户端在对信息记录签名进行签名验证成功后,可以根据该下载地址下载软件应用程序文件,并根据该信息记录中的哈希值验证该软件应用程序是否被修改。
采用上述可能的实现方式,应用市场中由于无需存放软件应用程序文件,从而节省了应用市场存储空间。
可替换地,服务器将信息记录签名写入区块链的区块后,也可以将所述区块地址以及所述软件应用程序文件发布到应用市场。这样,该客户端可以直接从应用市场下载得到软件应用程序文件,并根据区块地址从区块链中获取到应用程序的信息记录以及信息记录签名,以对该软件应用程序进行验证。
另外,上述步骤S103具体可以是,服务器以智能合约形式将信息记录签名写入区块链网络中的区块,则上述区块地址具体可以是合约地址。
值得说明的是,智能合约是一段计算机执行程序,满足可准确自动执行,基于区块链的智能合约包括事务处理和保存的机制,以及一个完备的状态机,用于接受和处理各种智能合约。如果自动状态机中某个或某几个动作的触发条件满足,则由状态机根据预设信息选择合约动作自动执行。例如,对于需要付费下载的软件应用程序,以智能合约形式写入区块链网络中的信息记录签名可以在用户支付相关费用后,允许用户获取到软件应用程序的下载地址。
本发明实施例还提供一种软件应用程序验证方法,所述方法应用于客户端,如图2所示,该方法包括:
S201、客户端从应用市场获取第一软件应用程序对应的区块地址。
其中,该应用市场可以是提供了软件应用程序名称和对应的区块地址的列表,这样,客户端根据软件应用程序的名称即可从应用市场获取到对应的区块地址。
在本发明实施例的一种可能的实现方式中,该应用市场还可以提供软件应用程序文件,在此种情况下,客户端可以直接从应用市场下载软件应用程序文件,并获取对应的区块地址。
S202、客户端根据所述区块地址在区块链中查找对应的区块。
其中,该客户端是区块链网络中的节点,以确保客户端具备查询区块链的权限。
S203、客户端获取所述区块中存储的第二软件应用程序的信息记录以及信息记录签名。
其中,所述信息记录签名是发布方私钥签名所述第二软件应用程序的信息记录得到的,所述信息记录至少包括所述第二软件应用程序的哈希值。
具体地,所述信息记录签名的产生可以参照上述对图1提供的软件应用程序发布方法的描述,此处不再赘述。
S204、客户端根据目标发布方的公钥对所述信息记录签名进行签名验证,其中,若签名验证成功则表明所述第二软件应用程序是所述目标发布方发布的软件应用程序。
值得说明的是,目标发布方可以在自身的官网上公布公钥,客户端访问官方网站即可获得目标发布方的公钥。
具体地,信息记录签名是根据发布方的私钥对软件应用程序的信息记录进行加密得到的,这样,客户端在获取到区块链的某一区块中存储的信息记录以及信息记录签名后,根据目标发布方的公钥对信息记录签名进行解密,若解密结果与该信息记录一致,则签名验证成功,即可确定该区块是该目标发布方发布的,从而保证了软件发布方不可冒充。
S205、客户端在签名验证成功后,根据所述哈希值确定所述第一软件应用程序文件是否与所述第二软件应用程序文件一致。
在软件应用程序的信息记录中包括软件应用程序的下载地址的情况下,客户端在签名验证成功后,可以根据下载地址下载得到第一软件应用程序,其中,该下载地址可以是软件应用程序的源下载地址。
进一步地,客户端在得到第一软件应用程序文件后,计算所述第一软件应用程序文件的哈希值,并确定所述第一软件应用程序文件的哈希值与所述信息记录中的哈希值是否一致,其中,若所述第一软件应用程序文件的哈希值与所述信息记录中的哈希值一致,则表明所述第一软件应用程序与所述第二软件应用程序一致。保证了客户端能够识别出软件应用程序在目标发布方发布后是否被修改。
采用上述方法,客户端在从区块链的区块中获取到软件应用程序的信息记录以及信息记录签名后,可以根据目标发布方公布的公钥对信息记录签名进行签名验证,签名验证成功则表明该区块是目标发布方写入的,并可以根据信息记录中的哈希值进一步验证客户端下载得到的软件应用程序是否与目标发布方发布的软件应用程序一致。由于区块链中写入的信息具备不可篡改的特性,从而使得客户端可以根据真实可信的私钥签名以及软件应用程序文件的哈希值,验证下载的软件应用程序是否为目标发布方发布的且未经修改的软件应用程序。
为了使本领域技术人员更加理解本发明实施例
提供的技术方案,下面以结合图3说明本发明实施例提供的软件应用程序的发布和验证方法。
图3是本发明实施例提供的一种实施环境的示意图,如图3所示,该实施环境包括发布方用于发布软件应用程序的服务器301,客户端302,其中,该客户端302可以是手机,平板电脑等用户设备。该实施环境还包括区块链网络303,应用市场304以及公共网络305。结合图3,本发明实施例提供的一种软件应用程序的发布和验证方法如图4所示,包括:
S401、服务器301获取软件应用程序1的信息记录。
该信息记录包括软件应用程序1文件的哈希值,以及该软件应用程序1的下载地址,例如,该软件应用程序1在公共网络305中的源下载地址。
S402、服务器301对该信息记录进行私钥签名,得到信息记录签名。
其中,服务器301是区块链网络中的一个区块链节点,软件应用程序的发布方在注册区块链网络时,可以得到成对出现的私钥和公钥。其中,私钥由发布方掌握而不发布到网络中,公钥可以发布到公共网络中由客户端获取。这样,公钥能够解密的签名信息即可确认为是该发布方发布的。
S403、服务器301将该信息记录和该信息记录签名写入区块链网络303中的区块,得到区块地址。
如图3所示的区块链网络303,其包括n个区块,参照上述对区块链数据写入的介绍,服务器301作为区块链网络中的一个区块链节点,其向区块链网络中写入信息记录签名遵循现有的区块链写入规则。
S404、服务器301将该软件应用程序1的名称以及区块地址发布到应用市场304。
其中,在采用本发明实施例后,应用市场只需提供软件应用程序名称和区块地址的对应关系,如图3所示的应用市场304,其提供了n个软件应用程序的名称及其对应的区块地址。
S405、客户端302根据软件应用程序1的名称在应用市场304搜索,获取该软件应用程序1对应的区块地址。
S406、客户端302从公共网络305获取发布方的公钥。
S407、客户端302根据该区块地址查找区块链网络中的区块,获取该区块中的信息记录以及信息记录签名。
S408、客户端302根据该公钥对该信息记录签名进行签名认证。
进一步地,若签名认证成功则执行步骤S409;若签名认证失败则表明该区块中的信息记录是仿冒的发布方发布的,该客户端可以拒绝从该区块获取相关信息下载软件应用程序。
S409、客户端302根据该信息记录中的下载地址下载软件应用程序1。
S410、客户端302计算下载得到的软件应用程序1的文件的哈希值。
S411、客户端302比较该信息记录中的哈希值与该软件应用程序1的文件的哈希值是否一致,以确定该软件应用程序1的文件是否被修改。
其中,若该信息记录中的哈希值与该软件应用程序1的文件的哈希值一致,则表明该软件应用程序1的文件未被修改,若该信息记录中的哈希值与该软件应用程序1的文件的哈希值不一致,则表明该软件应用程序1的文件被修改过。
采用上述方案,区块链技术确保了发布方发布的信息记录的安全可信任,这样,客户端通过公私钥验证在确定区块链中的信息记录为正确的发布方发布之后,可以根据信息记录中的哈希值确认该发布方发布的软件应用程序是否被修改。这样,在安装软件应用程序之前,客户端可以提示用户将要安装的软件应用程序是否与发布方发布的软件应用程序一致,以供用户参考。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。例如,可替换地,该服务器301也可以直接将软件应用程序1的文件发布到应用市场,以便客户端可以在应用市场下载到软件应用程序1的文件,本发明对此不做限定。
本发明实施例还提供一种发布软件应用程序的服务器50,该服务器50是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,用于实施上述方法实施例提供的软件应用程序发布方法,如图5A所示,该服务器50包括:
获取单元501,用于获取所述软件应用程序的信息记录,所述信息记录至少包括所述软件应用程序文件的哈希值;
签名单元502,用于根据所述发布方的私钥对所述信息记录进行加密,得到信息记录签名;所述信息记录签名用于验证发布所述软件应用程序的发布方是否被冒充,所述哈希值用于验证所述发布方发布的所述软件应用程序是否被修改;
区块链写入单元503,用于将所述信息记录以及所述信息记录签名写入区块链的区块中,得到区块地址,其中,所述区块地址用于客户端在所述区块链中查找到所述区块。
采用上述服务器,该服务器将至少包括软件应用程序文件的哈希值的信息记录进行私钥签名,并将签名前的信息记录和签名后的信息记录(即上述信息记录签名)写入区块链的区块中,这样,客户端在获得某个区块存储的信息记录和信息记录签名后,可以根据目标发布方公布的公钥对该信息记录签名进行签名认证,签名认证成功则表明该区块是目标发布方写入的,并根据该信息记录中的哈希值验证客户端下载得到的软件应用程序是否与目标发布方发布的软件应用程序一致。由于区块链中写入的信息具备不可篡改的特性,从而使得客户端可以根据真实可信的私钥签名以及软件应用程序文件的哈希值,验证下载的软件应用程序是否为目标发布方发布的且未经修改的软件应用程序。
可选地,所述信息记录还可以包括所述软件应用程序的下载地址。其中,所述下载地址用于客户端根据所述下载地址下载所述软件应用程序。
可选地,如图5B所示,该服务器501还包括:发布单元504,用于将所述区块地址以及所述软件应用程序的名称发布到应用市场,或者,将所述区块地址以及所述软件应用程序文件发布到应用市场。
本领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述功能单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,对于上述功能单元的物理实现也可以有多种方式,例如,在一示例性实施例中,服务器50可以被一个或多个ASIC(Application Specific Integrated Circuit,应用专用集成电路)、DSP(Digital Signal Processor,数字信号处理器)、DSPD(DigitalSignal Processing Device、数字信号处理终端设备)、PLD(Programmable Logic Device,可编程逻辑器件)、FPGA(Field Programmable Gate Array,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行图1提供的方法。
本发明实施例还提供一种客户端60,该客户端60是区块链网络中的节点,存储有由多个区块组成的区块链,每个区块用于存储信息,用于实施上述方法实施例提供的软件应用程序的验证方法,如图6A所示,该客户端60包括:
第一获取单元601,用于从应用市场获取第一软件应用程序对应的区块地址;
查找单元602,用于根据所述区块地址在区块链中查找对应的区块;
第二获取单元603,用于获取所述区块中存储的第二软件应用程序的信息记录以及信息记录签名,所述信息记录签名是发布方私钥签名所述信息记录得到的,所述信息记录至少包括所述第二软件应用程序的哈希值;
签名验证单元604,用于根据目标发布方的公钥对所述信息记录签名进行签名验证,其中,若签名验证成功则表明所述第二软件应用程序是所述目标发布方发布的软件应用程序;
确定单元605,用于在所述签名验证单元604验证成功后,根据所述哈希值确定所述第一软件应用程序文件是否与所述第二软件应用程序文件一致。
采用上述客户端,该客户端在获得某个区块存储的信息记录和信息记录签名后,可以根据目标发布方公布的公钥对该信息记录签名进行签名认证,签名认证成功则表明该区块是目标发布方写入的,并根据该信息记录中的哈希值验证客户端下载得到的软件应用程序是否与目标发布方发布的软件应用程序一致。由于区块链中写入的信息具备不可篡改的特性,从而使得客户端可以根据真实可信的私钥签名以及软件应用程序文件的哈希值,验证下载的软件应用程序是否为目标发布方发布的且未经修改的软件应用程序。
可选地,所述第一获取单元601用于:从所述应用市场获取所述第一软件应用程序文件,其中,所述应用市场提供软件应用程序文件及其对应的区块地址。
可选地,所述信息记录还包括下载地址,如图6B所示,所述客户端60还包括第三获取单元606,用于在所述签名验证单元604对所述信息记录签名验证成功后,根据所述下载地址下载所述第一软件应用程序文件,其中,所述应用市场提供软件应用程序名称及其对应的区块地址。
可选地,所述确定单元605用于:计算所述第一软件应用程序文件的哈希值;确定所述第一软件应用程序文件的哈希值与所述信息记录中的哈希值是否一致,其中,若所述第一软件应用程序文件的哈希值与所述信息记录中的哈希值一致,则表明所述第一软件应用程序与所述第二软件应用程序一致。
所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的客户端的各单元的具体工作过程,可以参考前述方法实施例中对应的过程,此处不再赘述。
另外,上述对客户端组成单元进行的划分,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。并且,各个单元的物理实现也可以有多种方式,本发明对此不做限定。
本发明实施例还提供另一种服务器70,如图7所示,该服务器70包括:
处理器(processor)701、通信接口(Communications Interface)702、存储器(memory)703和通信总线704;其中,所述处理器701、所述通信接口702和所述存储器703通过所述通信总线704完成相互间的通信。
处理器701可能是一个多核中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器703用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器703可能携带高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
所述通信接口702,用于实现这些装置之间的连接通信。
所述处理器701执行程序代码,所述程序代码在运行时用于实现图1所示的方法,具体参照上述方法实施例对于图1的描述,此处不再赘述。
本发明实施例还提供另一种客户端80,如图8所示,该客户端80包括:
处理器801、通信接口802、存储器803和通信总线804;所述处理器801、所述通信接口802和所述存储器803通过所述通信总线804完成相互间的通信。
处理器801可能是一个多核中央处理器CPU,或者是特定集成电路ASIC,或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器803用于存放程序代码,所述程序代码包括计算机操作指令和网络流图。存储器803可能携带高速RAM存储器,也可能还包括非易失性存储器,例如至少一个磁盘存储器。
所述通信接口802,用于实现这些装置之间的连接通信。
所述处理器801执行程序代码,所述程序代码在运行时用于实现图2所示的方法,具体参照上述方法实施例对于图2的描述,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储数据的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。