本发明涉及区块链技术领域,尤其涉及一种应用程序的配置文件管理方法及装置。
背景技术:
目前,每个应用程序都需要根据实际需求读取相应的配置文件来实现运行。当运行程序所需的配置文件与程序的开发文件放置在一起,当其中配置文件需要修改时,需要开发人员从开发文件中查找出待修改的配置文件,再进行修改,大大增加了代码修改出错的概率,维护成本大,因此,现有的配置文件的管理效率低。
技术实现要素:
有鉴于此,本发明实施例提供了一种应用程序的配置文件管理方法及装置,用以解决现有技术中应用程序的配置文件管理效率低的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种应用程序的配置文件管理方法,所述方法包括:
获取应用程序的配置文件上传请求,所述上传请求携带所述应用程序的配置文件,所述应用程序为智能合约或java应用程序中的任意一种;将所述应用程序的配置文件与预设的标签进行关联,其中,所述配置文件与至少一个预设的所述标签关联;响应于所述上传请求,根据非对称加密算法生成一对密钥;利用所述一对密钥中的私钥对上传的所述配置文件进行加密签名;将签名处理后的所述配置文件保存至区块链的配置文件管理中心,其中,所述配置文件管理中心根据所述配置文件的所述标签对所述配置文件进行分类管理;当所述应用程序启动运行时,从所述区块链的所述配置文件管理中心获取与所述标签关联的配置文件;读取预置在所述应用程序中的公钥,所述公钥与所述私钥互为一对密钥;通过所述公钥对所述配置文件进行验签,当验签成功,所述应用程序根据所述配置文件运行。
进一步地,所述将所述应用程序的配置文件与预设的标签进行关联,包括:
获取所述应用程序的唯一身份标识信息;将所述唯一身份标识信息通过哈希运算得到哈希值;将所述哈希值作为所述预设的标签;将所述应用程序的配置文件与所述预设的标签进行关联。
进一步地,所述当所述应用程序启动运行时,从所述区块链的所述配置文件管理中心获取与所述标签关联的配置文件,包括:
当两个或两个以上的所述应用程序运行时,判断所述两个或两个以上的所述应用程序是否存在共享的所述配置文件,其中,所述共享的配置文件设有两个或两个以上的所述应用程序的标签;若是,从所述区块链的所述配置文件管理中心一次获取所述共享的所述配置文件。
进一步地,所述通过所述公钥对所述配置文件进行验签之后,所述方法还包括:当验签失败,则所述配置文件与所述应用程序不匹配,生成风险提示信息,其中,所述风险提示信息用于提醒用户所述配置文件存在已经被篡改的风险。
进一步地,在所述将签名处理后的所述配置文件保存至区块链的配置文件管理中心之后,所述方法还包括:获取修改请求方关于所述配置文件的修改请求;响应于所述修改请求,验证所述修改请求方是否具有所述配置文件的修改权限;当验证通过,获取修改后的所述配置文件并用所述私钥进行加密签名,并用签名后的所述配置文件更新所述配置件管理中心的原配置文件。
进一步地,所述响应于所述修改请求,验证所述修改请求方是否具有修改权限,包括:向所述修改请求方发送密文,其中,所述密文由随机的预设数量个字符通过所述公钥加密得到;获取所述修改请求方输入的明文;将所述明文与所述预设数量个字符进行比对;当比对结果为一致时,确认所述修改请求方具有所述修改权限。
为了实现上述目的,根据本发明的一个方面,提供了应用程序的配置文件管理装置,所述装置包括:第一获取单元,用于获取应用程序的配置文件上传请求,所述上传请求携带所述应用程序的配置文件,所述应用程序为智能合约或java应用程序中的任意一种;关联单元,用于将所述应用程序的配置文件与预设的标签进行关联,其中,所述配置文件与至少一个预设的所述标签关联;生成单元,用于响应于所述上传请求,根据非对称加密算法生成一对密钥;处理单元,用于利用所述一对密钥中的私钥对上传的所述配置文件进行加密签名;保存单元,用于将签名处理后的所述配置文件保存至区块链的配置文件管理中心,其中,所述配置文件管理中心根据所述配置文件的所述标签对所述配置文件进行分类管理;第二获取单元,用于当所述应用程序启动运行时,从所述区块链的所述配置文件管理中心获取与所述标签关联的配置文件;读取单元,用于读取预置在所述应用程序中的公钥,所述公钥与所述私钥互为一对密钥;第一验证单元,用于通过所述公钥对所述配置文件进行验签,当验签成功,所述应用程序根据所述配置文件运行。
可选地,所述关联单元包括:第一获取子单元,用于获取所述应用程序的唯一身份标识信息;运算子单元,用于将所述唯一身份标识信息通过哈希运算得到哈希值;处理子单元,用于将所述哈希值作为所述预设的标签;关联子单元,用于将所述应用程序的配置文件与所述预设的标签进行关联。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机非易失性存储介质,所述存储介质包括存储的程序,在所述程序运行时控制所述存储介质所在设备执行上述的应用程序的配置文件管理方法。
为了实现上述目的,根据本发明的一个方面,提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的应用程序的配置文件管理方法的步骤。
在本方案中,将配置文件与标签关联后存储在区块链中,使得应用程序(智能合约或java应用程序)运行时通过接口从区块链的配置文件管理中心读取相应的配置文件,相比于将配置文件与程序的开发代码存储在一起,更有利于对配置文件的管理,在配置文件需要更新或修改时,仅需要更新或修改区块链中的配置文件即可,提高配置文件的管理效率,也能加快程序的开发。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的一种可选的应用程序的配置文件管理方法的流程图;
图2是本发明实施例提供的一种可选的应用程序的配置文件管理装置的示意图;
图3是本发明实施例提供的一种可选的计算机设备的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述终端,但这些终端不应限于这些术语。这些术语仅用来将终端彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一获取单元也可以被称为第二获取单元,类似地,第二获取单元也可以被称为第一获取单元。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
图1是根据本发明实施例的一种应用程序的配置文件管理方法的流程图,如图1所示,该方法包括:
步骤s101,获取应用程序的配置文件上传请求,上传请求携带应用程序的配置文件,应用程序为智能合约或java应用程序中的任意一种。
步骤s102,将应用程序的配置文件与预设的标签进行关联,其中,配置文件与至少一个预设的标签关联。
步骤s103,响应于上传请求,根据非对称加密算法生成一对密钥。
步骤s104,利用一对密钥中的私钥对上传的配置文件进行加密签名。
步骤s105,将签名处理后的配置文件保存至区块链的配置文件管理中心,其中,配置文件管理中心根据配置文件的标签对配置文件进行分类管理。
步骤s106,当应用程序启动运行时,从区块链的配置文件管理中心获取与标签关联的配置文件。
步骤s107,读取预置在应用程序中的公钥,公钥与私钥互为一对密钥。
步骤s108,通过公钥对配置文件进行验签,当验签成功,应用程序根据配置文件运行。
其中,配置文件,是指存储配置信息的文件。部署于服务器上的应用程序通过读取配置文件中的配置信息以设定自身的各项软硬件参数。应用程序,是指为用户提供网络或者数据服务的程序。应用程序部署于应用节点服务器。应用节点服务器通过自身的各项软硬件资源为应用程序提供平台支撑。
在本方案中,将配置文件与标签关联后存储在区块链中,使得应用程序(智能合约或java应用程序)运行时通过接口从区块链的配置文件管理中心读取相应的配置文件,相比于将配置文件与程序的开发代码存储在一起,更有利于对配置文件的管理,在配置文件需要更新或修改时,仅需要更新或修改区块链中的配置文件即可,提高配置文件的管理效率,也能加快程序的开发。
可以理解地,区块链可以是本领域已知或将来开发的任何区块链,包括公有链、联盟链或私有链等。每个区块链由该区块链对应的节点创建的多个区块构成,每个区块都有该区块数据内容和数据指纹签名。通过区块链存储的数据,保证了数据的不可篡改性。
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
可选地,将应用程序的配置文件与预设的标签进行关联,包括:获取应用程序的唯一身份标识信息;将唯一身份标识信息通过哈希运算得到哈希值;将哈希值作为预设的标签;将应用程序的配置文件与预设的标签进行关联。根据应用程序的唯一身份标识信息创建标签。可以理解地,当两个应用程序共享一个配置文件时,则需将两个应用程序的唯一身份标识信息分别生成一个标签,将配置文件与两个预设的标签进行关联。
哈希,也叫散列,就是把任意长度的输入,通过散列算法变成固定长度的输出,输出的就是散列值。根据哈希运算结果长度的不同可以将哈希运算划分为多种,例如16位的哈希运算、32位的哈希运算、128位的哈希运算。在本实施例中,标签为16位的哈希值。
哈希运算包括消息摘要算法、安全杂乱信息标准算法中的任意一种,均具有较好的压缩性、抗碰撞性和抗修改性,且计算简便。可以理解,由于哈希运算具备不可逆的特点,即通过哈希序列,无法恢复得到原本运算前的应用程序的唯一身份标识信息。因此,盗用配置文件的人也不能知道配置文件所应用的应用程序。
在其他实施方式中,java应用程序或智能合约的标签还可以包括标示应用场景的场景标签,例如:社交类应用程序的配置文件、通讯类应用程序的配置文件、购物类应用程序的配置文件。智能合约例如按照应用场景可以分为房屋买卖的智能合约、房屋租赁的智能合约、快递物流的智能合约。通过将配置文件根据应用程序的使用场景对配置文件进行标注,能够使得相同使用场景(即标注有相同的场景标签)的应用程序能够实现共享配置文件。
可选地,步骤s103,响应于上传请求,根据非对称加密算法生成一对密钥,包括:
随机选择一个预设字节的值作为配置文件的私钥k;采用椭圆曲线加密算法选定一条椭圆曲线fp(a,b),并取椭圆曲线上一个基点g;生成公钥k=kg。
在其他实施方式中,非对称加密算法包括但不限于:rsa算法、迪菲-赫尔曼密钥算法、背包算法、rabin算法、d-h算法、椭圆曲线加密算法等等,以根据非对称加密算法生成非对称密钥。也就是说,用于加密认证密钥的公钥和用于解密认证密钥的私钥有所不同。
可选地,公钥预置在应用程序中,当应用程序运行时,应用程序能够利用公钥对配置文件的签名进行验证。具体地,当java应用程序的终端节点在运行java应用程序时,从区块链中获取其配置文件,具体地:终端节点向区块链发送读取请求,读取请求携带java应用程序的唯一身份标识信息;区块链的配置文件管理中心根据java应用程序的唯一身份标识信息及预设的哈希运算算法读取存储在配置文件管理中心的相应的配置文件,并向终端节点发送该配置文件。终端节点在获取配置文件后,根据java应用程序中预置的公钥对配置文件进行验签,当验签成功,java应用程序根据配置文件中的配置信息进行运行。
其中,配置信息可以是源代码或者是将源代码编译后得到的数据。在本实施方式中,配置文件利用私钥进行签名加密。配置文件可以采用html、xml或许基于xml扩展的自定义标记语言。
当应用程序为智能合约时,区块链中的运行节点运行智能合约时,运行节点向配置文件管理中心发送读取请求,读取请求携带智能合约的唯一身份标识信息;区块链的配置文件管理中心根据智能合约的唯一身份标识信息及预设的哈希运算算法读取存储在配置文件管理中心的配置文件,并向运行节点发送该配置文件。智能合约的运行节点在获取配置文件后,根据智能合约中预置的公钥对配置文件进行验签,当验签成功,智能合约根据配置文件中的配置信息进行运行。
可以理解地,部署于服务器上的应用程序通过读取配置文件中的配置信息以设定自身的各项软硬件参数,就可以启动运行了,如果终端节点或运行节点验签失败,则说明配置文件可能被篡改或者不适用,应用程序就不能运行或运行失败。
可选地,当应用程序启动运行时,从区块链的配置文件管理中心获取与标签关联的配置文件,包括:
当两个或两个以上的应用程序运行时,判断两个或两个以上的应用程序是否存在共享的配置文件,其中,共享的配置文件设有两个或两个以上的应用程序的标签;若是,从区块链的配置文件管理中心一次获取共享的配置文件。例如:配置文件1既标注有应用程序a的身份标签也标注有应用程序b的身份标签。
可以理解地,当多个应用程序共享一些配置文件时,同时读取即可,可以有效简化多个预设程序同步运行的程序。
可选地,通过公钥对配置文件进行验签之后,方法还包括:
当验签失败,则配置文件与应用程序不匹配,生成风险提示信息,其中,风险提示信息用于提醒用户配置文件存在已经被篡改的风险。
可选地,在将签名处理后的配置文件保存至区块链的配置文件管理中心之后,方法还包括:
获取配置文件的修改请求;响应于修改请求,验证修改请求方是否具有配置文件的修改权限;当验证通过,获取修改后的配置文件,并用修改后的配置文件更新配置件管理中心的原配置文件。例如:配置文件需要更新时,用户只需要在配置文件管理中心对相应的配置文件进行修改升级即可,修改后用相同的私钥进行签名,在应用程序读取时验签成功,即可根据更新后的配置文件对应用程序进行升级更新,不需要对应用程序的整个开发代码进行修改。
可选地,响应于修改请求,验证修改请求方是否具有修改权限的方法,包括:
向修改请求方发送密文,其中,密文由随机的预设数量个字符通过公钥加密得到;获取修改请求方输入的明文;将明文与预设数量个字符进行比对;当比对结果为一致时,确认修改请求方具有修改权限。其中,明文为修改请求方输入的字符,例如“我是张小平”。
例如:随机生成“今天天气不错”这几个字符,并用公钥对其进行加密得到密文,修改请求方在收到这个密文后,如果拥有私钥能够对这个密文进行解密,那么就表示其具有修改权限。可以理解地,拥有配置文件的私钥的一方即具备配置文件的修改权限。
在本方案中,将配置文件与标签关联后存储在区块链中,使得程序(智能合约或java应用程序)运行时通过接口从区块链的配置文件管理中心读取相应的配置文件,相比于将配置文件与程序的开发代码存储在一起,更有利于对配置文件的管理,在配置文件需要更新或修改时,仅需要更新或修改区块链中的配置文件即可,实现多个共享相同配置文件的智能合约或java应用程序的同步升级,提高配置文件的管理效率,也能加快程序的开发。
本发明实施例提供了一种应用程序的配置文件管理装置,该装置用于执行上述应用程序的配置文件管理方法,如图2所示,该装置包括:第一获取单元10、关联单元20、生成单元30、处理单元40、保存单元50、第二获取单元60、读取单元70及第一验证单元80。
第一获取单元10,用于获取应用程序的配置文件上传请求,所述上传请求携带所述应用程序的配置文件,所述应用程序为智能合约或java应用程序中的任意一种;
关联单元20,用于将所述应用程序的配置文件与预设的标签进行关联,其中,所述配置文件与至少一个预设的所述标签关联;
生成单元30,用于响应于所述上传请求,根据非对称加密算法生成一对密钥;
处理单元40,用于利用所述一对密钥中的私钥对上传的所述配置文件进行加密签名;
保存单元50,用于将签名处理后的所述配置文件保存至区块链的配置文件管理中心,其中,所述配置文件管理中心根据所述配置文件的所述标签对所述配置文件进行分类管理。
第二获取单元60,用于当应用程序启动运行时,从区块链的配置文件管理中心获取与标签关联的配置文件。
读取单元70,用于读取预置在应用程序中的公钥,公钥与私钥互为一对密钥。
第一验证单元80,用于通过公钥对配置文件进行验签,当验签成功,应用程序根据配置文件运行。
其中,配置文件,是指存储配置信息的文件。部署于服务器上的应用程序通过读取配置文件中的配置信息以设定自身的各项软硬件参数。应用程序,是指为用户提供网络或者数据服务的程序。应用程序部署于应用节点服务器。应用节点服务器通过自身的各项软硬件资源为应用程序提供平台支撑。
在本方案中,将配置文件与标签关联后存储在区块链中,使得应用程序(智能合约或java应用程序)运行时通过接口从区块链的配置文件管理中心读取相应的配置文件,相比于将配置文件与程序的开发代码存储在一起,更有利于对配置文件的管理,在配置文件需要更新或修改时,仅需要更新或修改区块链中的配置文件即可,提高配置文件的管理效率,也能加快程序的开发。
可以理解地,区块链可以是本领域已知或将来开发的任何区块链,包括公有链、联盟链或私有链等。每个区块链由该区块链对应的节点创建的多个区块构成,每个区块都有该区块数据内容和数据指纹签名。通过区块链存储的数据,保证了数据的不可篡改性。
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
可选地,关联单元20包括第一获取子单元、运算子单元、处理子单元、关联子单元。
第一获取子单元,用于获取应用程序的唯一身份标识信息;运算子单元,用于将唯一身份标识信息通过哈希运算得到哈希值;处理子单元,用于将哈希值作为预设的标签;关联子单元,用于将应用程序的配置文件与预设的标签进行关联。根据应用程序的唯一身份标识信息创建标签。可以理解地,当两个应用程序共享一个配置文件时,则需将两个应用程序的唯一身份标识信息分别生成一个标签,将配置文件与两个预设的标签进行关联。
哈希,也叫散列,就是把任意长度的输入,通过散列算法变成固定长度的输出,输出的就是散列值。根据哈希运算结果长度的不同可以将哈希运算划分为多种,例如16位的哈希运算、32位的哈希运算、128位的哈希运算。在本实施例中,标签为16位的哈希值。
哈希运算包括消息摘要算法、安全杂乱信息标准算法中的任意一种,均具有较好的压缩性、抗碰撞性和抗修改性,且计算简便。可以理解,由于哈希运算具备不可逆的特点,即通过哈希序列,无法恢复得到原本运算前的应用程序的唯一身份标识信息。因此,盗用配置文件的人也不能知道配置文件所应用的应用程序。
在其他实施方式中,java应用程序或智能合约的标签还可以包括标示应用场景的场景标签,例如:社交类应用程序的配置文件、通讯类应用程序的配置文件、购物类应用程序的配置文件。智能合约例如按照应用场景可以分为房屋买卖的智能合约、房屋租赁的智能合约、快递物流的智能合约。通过将配置文件根据应用程序的使用场景对配置文件进行标注,能够使得相同使用场景(即标注有相同的场景标签)的应用程序能够实现共享配置文件。
可选地,生成单元30包括设置子单元、选定子单元、生成子单元。
设置子单元,用于随机选择一个预设字节的值作为配置文件的私钥k;选定子单元,用于采用椭圆曲线加密算法选定一条椭圆曲线fp(a,b),并取椭圆曲线上一个基点g;生成子单元,用于生成公钥k=kg。
在其他实施方式中,非对称加密算法包括但不限于:rsa算法、迪菲-赫尔曼密钥算法、背包算法、rabin算法、d-h算法、椭圆曲线加密算法等等,以根据非对称加密算法生成非对称密钥。也就是说,用于加密认证密钥的公钥和用于解密认证密钥的私钥有所不同。
可选地,公钥预置在应用程序中,当应用程序运行时,应用程序能够利用公钥对配置文件的签名进行验证。具体地,当java应用程序的终端节点在运行java应用程序时,从区块链中获取其配置文件,具体地:终端节点向区块链发送读取请求,读取请求携带java应用程序的唯一身份标识信息;区块链的配置文件管理中心根据java应用程序的唯一身份标识信息及预设的哈希运算算法读取存储在配置文件管理中心的相应的配置文件,并向终端节点发送该配置文件。终端节点在获取配置文件后,根据java应用程序中预置的公钥对配置文件进行验签,当验签成功,java应用程序根据配置文件中的配置信息进行运行。
其中,配置信息可以是源代码或者是将源代码编译后得到的数据。在本实施方式中,配置文件利用私钥进行签名加密。配置文件可以采用html、xml或许基于xml扩展的自定义标记语言。
当应用程序为智能合约时,区块链中的运行节点运行智能合约时,运行节点向配置文件管理中心发送读取请求,读取请求携带智能合约的唯一身份标识信息;区块链的配置文件管理中心根据智能合约的唯一身份标识信息及预设的哈希运算算法读取存储在配置文件管理中心的配置文件,并向运行节点发送该配置文件。智能合约的运行节点在获取配置文件后,根据智能合约中预置的公钥对配置文件进行验签,当验签成功,智能合约根据配置文件中的配置信息进行运行。
可以理解地,部署于服务器上的应用程序通过读取配置文件中的配置信息以设定自身的各项软硬件参数,就可以启动运行了,如果终端节点或运行节点验签失败,则说明配置文件可能被篡改或者不适用,应用程序就不能运行或运行失败。
可选地,第二获取单元包括判断子单元、第二获取子单元。
判断子单元,用于当两个或两个以上的应用程序运行时,判断两个或两个以上的应用程序是否存在共享的配置文件,其中,共享的配置文件设有两个或两个以上的应用程序的标签;第二获取子单元,用于若是,从区块链的配置文件管理中心一次获取共享的配置文件。例如:配置文件1既标注有应用程序a的身份标签也标注有应用程序b的身份标签。
可以理解地,当多个应用程序共享一些配置文件时,同时读取即可,可以有效简化多个预设程序同步运行的程序。
可选地,装置还包括第二生成单元。
第二生成单元,用于当验签失败,则配置文件与应用程序不匹配,生成风险提示信息,其中,风险提示信息用于提醒用户配置文件存在已经被篡改的风险。
可选地,装置还包括第三获取单元、第二验证单元、更新单元。
第三获取单元,用于获取配置文件的修改请求;第二验证单元,用于响应于修改请求,验证修改请求方是否具有配置文件的修改权限;更新单元,用于当验证通过,获取修改后的配置文件,并用修改后的配置文件更新配置件管理中心的原配置文件。例如:配置文件需要更新时,用户只需要在配置文件管理中心对相应的配置文件进行修改升级即可,修改后用相同的私钥进行签名,在应用程序读取时验签成功,即可根据更新后的配置文件对应用程序进行升级更新,不需要对应用程序的整个开发代码进行修改。
可选地,第二验证单元包括发送子单元、第三获取子单元、比对子单元、确认子单元。
发送子单元,用于向修改请求方发送密文,其中,密文由随机的预设数量个字符通过公钥加密得到;第三获取子单元,用于获取修改请求方输入的明文;比对单元,用于将明文与预设数量个字符进行比对;确认子单元,用于当比对结果为一致时,确认修改请求方具有修改权限。其中,明文为修改请求方输入的字符,例如“我是张小平”。
例如:随机生成“今天天气不错”这几个字符,并用公钥对其进行加密得到密文,修改请求方在收到这个密文后,如果拥有私钥能够对这个密文进行解密,那么就表示其具有修改权限。可以理解地,拥有配置文件的私钥的一方即具备配置文件的修改权限。
在本方案中,将配置文件与标签关联后存储在区块链中,使得程序(智能合约或java应用程序)运行时通过接口从区块链的配置文件管理中心读取相应的配置文件,相比于将配置文件与程序的开发代码存储在一起,更有利于对配置文件的管理,在配置文件需要更新或修改时,仅需要更新或修改区块链中的配置文件即可,实现多个共享相同配置文件的智能合约或java应用程序的同步升级,提高配置文件的管理效率,也能加快程序的开发。
本发明实施例提供了一种计算机非易失性存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:
获取应用程序的配置文件上传请求,上传请求携带应用程序的配置文件,应用程序为智能合约或java应用程序中的任意一种;将应用程序的配置文件与预设的标签进行关联,其中,配置文件与至少一个预设的标签关联;响应于上传请求,根据非对称加密算法生成一对密钥;利用一对密钥中的私钥对上传的配置文件进行加密签名;将签名处理后的配置文件保存至区块链的配置文件管理中心,其中,配置文件管理中心根据配置文件的标签对配置文件进行分类管理;当应用程序启动运行时,从区块链的配置文件管理中心获取与标签关联的配置文件;读取预置在应用程序中的公钥,公钥与私钥互为一对密钥;通过公钥对配置文件进行验签,当验签成功,应用程序根据配置文件运行。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:获取应用程序的唯一身份标识信息;将唯一身份标识信息通过哈希运算得到哈希值;将哈希值作为预设的标签;将应用程序的配置文件与预设的标签进行关联。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:当两个或两个以上的应用程序运行时,判断两个或两个以上的应用程序是否存在共享的配置文件,其中,共享的配置文件设有两个或两个以上的应用程序的标签;若是,从区块链的配置文件管理中心一次获取共享的配置文件。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:当验签失败,则配置文件与应用程序不匹配,生成风险提示信息,其中,风险提示信息用于提醒用户配置文件存在已经被篡改的风险。
可选地,在程序运行时控制存储介质所在设备执行以下步骤:获取修改请求方关于所述配置文件的修改请求;响应于所述修改请求,验证所述修改请求方是否具有所述配置文件的修改权限;当验证通过,获取修改后的所述配置文件并用所述私钥进行加密签名,并用签名后的所述配置文件更新所述配置件管理中心的原配置文件。
图3是本发明实施例提供的一种计算机设备的示意图。如图3所示,该实施例的计算机设备100包括:处理器101、存储器102以及存储在存储器102中并可在处理器101上运行的计算机程序103,该计算机程序103被处理器101执行时实现实施例中的应用程序的配置文件管理方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器101执行时实现实施例中应用程序的配置文件管理装置中各模型/单元的功能,为避免重复,此处不一一赘述。
计算机设备100可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器101、存储器102。本领域技术人员可以理解,图3仅仅是计算机设备100的示例,并不构成对计算机设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器101可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以是计算机设备100的内部存储单元,例如计算机设备100的硬盘或内存。存储器102也可以是计算机设备100的外部存储设备,例如计算机设备100上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器102还可以既包括计算机设备100的内部存储单元也包括外部存储设备。存储器102用于存储计算机程序以及计算机设备所需的其他程序和数据。存储器102还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。