数据加密方法、装置、计算机设备及存储介质与流程

文档序号:18267058发布日期:2019-07-27 09:15阅读:198来源:国知局
数据加密方法、装置、计算机设备及存储介质与流程

本申请涉及信息安全的加密技术领域,尤其涉及一种数据加密方法、装置、计算机设备及计算机可读存储介质。



背景技术:

区块链网络中的各个节点中需要共享数据,为了防止自己的敏感数据被区块链中的其它节点随意访问,必须将自己的数据加密上链,对需要了解自己数据的节点采取授权密钥的方式。被授权节点在拿到密钥后可以查看在链上的密钥对应的加密数据。传统的加密授权方式,采用一文一密的方式,一次授权,必须是整条业务数据同时被授权,这样保证了每条加密数据的整体安全性和独立性。比如,请参阅图1,图1(a)所示为在一份商业合同中,有一条业务数据包括业务方名称、业务方的id号、业务方评级以及本次合同的货品单价等,也就是该条业务数据包括企业名称、企业id、企业评级和货单价。传统技术中,对该条业务数据一般采用一文一密的方式,也就是将该条业务数据包括的企业名称、企业id、企业评级和货单价采用一个密钥进行加密,如图1(a)所示,在图1(a)就是采用统一的密钥datakey对该条数据进行加密,密钥datakey授权给对方后,获得密钥datakey的被授权方通过该密钥datakey可以访问该条业务数据包括的企业名称、企业id、企业评级和货单价等所有内容。

但在实际业务需求中,有时在同一条业务数据中,仅希望被授权方只能查看该同一条业务数据的部分内容,比如,在交易谈成之前,甲方仅希望乙方能够查看业务方的企业名称、企业id等信息,对企业评级等信息视情况是否允许对方查看,对于合同的货品单价在合同最终谈成之前并不希望乙方查看,在这样的情况下,传统技术中必须把这份商业合同的同一条业务数据拆分为三条数据,将希望对方查看的数据通过一个密钥加密上链,将根据情况确定是否允许乙方查看的数据通过另一个密钥加密上链,而不希望被乙方查看的部分通过第三个密钥加密上链。请继续参阅图1中的(a)和(b),如果要对图(a)所示的同一条业务数据中的不同内容进行分别授权时,传统技术中通常需要采取图(b)所示的方式,就必须将同一条业务数据拆分开为三条独立的业务条数据发送到区块链上,比如,将企业名称和企业id采用密钥datakey1进行加密后单独上链,将企业评级采用密钥datakey2进行加密后单独上链,将货单价采用密钥datakey3进行加密后单独上链,从而实现将企业名称和企业id、企业评级及货单价分别进行授权。采取这种将业务数据进行拆分以使部分数据单独上链的处理方式,对于业务方而言,需要将业务数据拆分而管理多条数据,并且由于这些多条数据属于同一份合同中的业务数据,还需要管理这些多条数据之间的关系,这样的操作比较复杂,给业务端的加密数据处理带来了很大的麻烦,降低了加密数据处理的效率。



技术实现要素:

本申请实施例提供了一种数据加密方法、装置、计算机设备及计算机可读存储介质,能够解决传统技术中由于需要对加密数据分别授权进行数据拆分而导致对加密数据处理效率较低的问题。

第一方面,本申请实施例提供了一种数据加密方法,所述方法包括:获取待加密数据;根据预设规则将所述待加密数据划分为不同数据域;通过第一预设方式生成根密钥,并获取初始向量和步长;基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥;使用所述子密钥对所述数据域进行加密。

第二方面,本申请实施例还提供了一种数据加密装置,包括:第一获取单元,用于获取待加密数据;划分单元,用于根据预设规则将所述待加密数据划分为不同数据域;生成单元,用于通过第一预设方式生成根密钥,并获取初始向量和步长;衍生单元,用于基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥;加密单元,用于使用所述子密钥对所述数据域进行加密。

第三方面,本申请实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现所述数据加密方法。

第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器执行所述数据加密方法。

本申请实施例提供了一种数据加密方法、装置、计算机设备及计算机可读存储介质。本申请实施例实现数据加密时,通过根据预设规则将所述待加密数据划分为不同数据域,通过第一预设方式生成根密钥,并获取初始向量和步长,基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥,使用所述子密钥对所述数据域进行加密,以实现对同一条业务数据的多个数据域进行分开加密,从而实现对同一条业务数据的多个数据域使用对应的子密钥单独授权,进一步实现对同一条业务数据的不同数据域实现单独访问,相对于传统技术中,在同一条业务数据中,若仅希望被授权方只能访问部分内容的需求而必须将数据进行拆分以单独上链的处理方式,可以大大提高加密数据处理的效率和访问的便捷性。

附图说明

为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本申请实施例提供的现有技术中数据加密方式示意图;

图2为本申请实施例提供的数据加密方法的应用场景示意图;

图3为本申请实施例提供的数据加密方法的流程示意图;

图4为本申请实施例提供的数据加密方法中三种加密方式对比示意图;

图5为本申请实施例提供的数据加密装置的示意性框图;

图6为本申请实施例提供的数据加密装置的另一个示意性框图;以及

图7为本申请实施例提供的计算机设备的示意性框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

请参阅图2,图2为本申请实施例提供的数据加密方法的应用场景示意图。所述应用场景包括:

(1)区块链中的多个终端。图2所示的区块链中包含有6个终端,假如终端1上有加密数据需要上传到区块链中,以供区块链中的其它终端共享加密数据,终端1上的数据经通过本申请实施例中的数据加密方法加密后上传到链上,区块链中的其它终端在得到授权后可以从链上获取加密数据以实现对加密数据的访问,其中需要上传加密数据的终端1执行本申请实施例中的数据加密方法的步骤,所述终端可以为笔记本电脑、平板电脑,智能手机或者台式电脑等电子设备。

图2中的各个主体工作过程如下:终端1获取待加密数据,根据预设规则将所述待加密数据划分为不同数据域,通过第一预设方式生成根密钥,并获取初始向量和步长,基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥,使用所述子密钥对所述数据域进行加密,待加密数据经过加密后上传到区块链中,区块链中的其它终端2至终端6中的任一终端在得到终端1的授权后,可以根据获得授权的权限访问对应的加密数据,比如,若子密钥3对数据域3的数据进行加密,终端5获得子密钥3,终端5就可以访问区块链中子密钥3对应的数据域3的加密数据。

需要说明的是,图2中仅仅示意出台式电脑和智能手机作为终端,在实际操作过程中,终端的类型不限于图2中所示,所述终端还可以为笔记本电脑、智能手表或者平板电脑等电子设备,上述数据加密方法的应用场景仅仅用于说明本申请技术方案,并不用于限定本申请技术方案,上述连接关系还可以有其它形式。

请参阅图3和图4,图3为本申请实施例提供的数据加密方法的示意性流程图,图4为本申请实施例提供的数据加密方法中三种加密方式对比示意图,图4包括图(a)、图(b)及图(c)三个图。该数据加密方法应用于图2中的需要上传加密数据到区块链上的终端中,以完成数据加密方法的全部或者部分功能。

请参阅图3,图3是本申请实施例提供的数据加密方法的流程示意图。如图3所示,该方法包括以下步骤s310-s350:

s310、获取待加密数据;

s320、根据预设规则将所述待加密数据划分为不同数据域。

其中,数据域是指使用一个密钥进行加密以进行独立授权的数据的取值范围,比如,json格式中的一个键值对作为一个数据域,再比如,图3中企业评级和货单价两列数据组成一个数据域。其中,json,英文为javascriptobjectnotation,js对象简谱,是一种轻量级的数据交换格式,json数据的书写格式是:名称/值对。

预设规则是指将待加密数据拆分为多个部分以得到不同数据域的依据。,比如,若待加密数据采用json格式,可以根据json格式中的键值对将待加密数据拆分为不同的部分以得到不同的数据域,也就是将json格式中的每一个键值对作为一个数据域。

具体地,区块链中的节点获取待加密数据,将所述待加密数据根据预设规则划分为不同的数据域以实现对待加密数据精细粒度的加密,以便后续对不同的数据域实现灵活授权。比如,将同一个业务属性的数据采用json的格式,对于json的每一个键值对(也就是key-value对)作为一个数据域(英文为field)单独加密,由此,每个field都会有一个独立的数据域密钥作为子密钥,子密钥也就是fieldkey密钥,并可以对这个fieldkey进行单独授权,这样被授权方就可以读取同一个业务中的某些数据而不需要将该业务数据进行拆分其中,key为对象的属性,value为对应的属性值。

进一步地,可以将采用非键值对格式的数据转化为键值对格式数据以便根据所述键值对将所述待加密数据划分为不同的数据域。若所述待加密数据为非键值对格式,所述根据预设规则将所述待加密数据划分为不同数据域的步骤包括:

将所述待加密数据转换成键值对;

以每一个键值对作为一个数据域将所述待加密数据划分为多个数据域。

具体地,根据所述待加密数据的格式,将所述待加密数据转换成键值对的格式,也就是将所述加密数据中的对象作为key,将所述对象的值或者属性作为value。比如,若所述待加密数据为数组格式,将此数据的数组格式转化成json对象后,key值是数组中的索引,value是数组对应的值。将所述待加密数据转换成键值对后,以每一个键值对作为一个数据域将所述待加密数据划分为多个数据域以进一步通过对不同数据域的加密实现对所述数据域对应的数据的灵活授权。

另外,若所述待加密数据是json格式,直接获取json格式的待加密数据,进而将所述json格式的待加密数据中的每一个键值对作为一个数据域以将所述待加密数据划分为多个数据域。进一步地,若所述待加密数据的json报文格式比较复杂,比如所述待加密数据采取json套用json的情况,所述获取json格式的待加密数据的步骤之后,还包括:

将json格式的所述待加密数据进行扁平化处理后得到一维的json格式的待加密数据。

具体地,由于所述待加密数据的json报文格式比较复杂,比如,所述待加密数据采取json套用json的情况,节点将业务层发送的json报文格式进行扁平化,也就是业务端传到区块链二级节点的json报文格式非常复杂,有json套用json的情况,所以需要对json套用json的复杂情况进行扁平化处理,将所述待加密数据的复杂json格式打平为一维的json格式,以一个二维的json格式为例,进行扁平化的过程中涉及的程序如下:

所述待加密数据在扁平化之前的格式为:

所述待加密数据经过扁平化以后的格式为:

可见,整个所述待加密数据一共由7个key-value对组成,通过根据键值对将所述待加密数据划分为不同数据域,每个key-value就是一个field。

s330、通过第一预设方式生成根密钥,并获取初始向量和步长。

具体地,节点生成一个密码学安全的随机数为datakey,将所述datakey作为根密钥。同时通过密码学生成一个初始向量,一般的使用上会要求该初始向量是随机数或伪随机数(pseudorandom),使用乱数产生的初始向量才能达到语义安全,步长可以为预先设置的固定步长,也可以为随机产生的一个步长。其中,在密码学的领域里,初始化向量,英语:initializationvector,缩写为iv,或称为初向量,又称初始变量,英文为startingvariable,缩写为sv,是一个固定长度的输入值,一般的使用上会要求它是随机数或拟随机数(pseudorandom)。步长,又称为步长因子,英文为steplengthfacto。

s340、基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥;

其中,所述衍生是指通过第二预设方式生成以根密钥为基础的子密钥的方式。在本申请实施例中,所述衍生是指基于根密钥通过根密钥、初始向量和步长之间的预设关系生成多个子密钥的方式。

具体地,在本申请实施例中,基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥,是指使用所述根密钥和所述初始向量进行密钥衍生得到第一个子密钥,根据所述初始向量和所述步长的预设函数关系得到第二初始向量,使用所述根密钥和所述第二初始向量进行密钥衍生得到第二子密钥,根据所述第二初始向量和所述步长的所述预设函数关系得到第三初始向量,使用所述根密钥和所述第三初始向量进行密钥衍生得到第三子密钥,循环上述过程,直至衍生出预设数量子密钥。比如根据所述初始向量和步长的预设线性函数关系获得第二初始向量,根据所述第二初始向量和所述步长的所述预设函数关系得到第三初始向量,使用所述根密钥和所述初始向量进行密钥衍生得到第一子密钥,使用所述根密钥和所述第二初始向量进行密钥衍生得到第二子密钥,使用所述根密钥和所述第三初始向量进行密钥衍生得到第三子密钥,循环上述过程,直至衍生出预设数量子密钥。对feildkey的生成方法,具体包括以下过程:首先生成一个密码学安全的随机数为datakey,并生成当前的初始向量iv以及当前的filed步长stepfactor,根密钥与初始向量满足预设数学关系,衍生出fieldkey,比如,fieldkey=datakey+f(iv),然后使用datakey为根密钥,iv为初识向量,进行密钥衍生得到第一个fieldkey1,然后,以stepfactor为步长,将iv作为一个基数,计算iv2=iv+stepfactor,再以datakey为根密钥,iv2为初识向量,得到第二个fieldkey2,以此类推衍生出多个子密钥。

在一个实施例中,本申请实施例提供的精细粒度的加密数据授权方法,可以对同一条业务数据的多个数据域进行分开授权,通过将同一个业务属性的数据采用json的格式,而对于json的每一个key-value对作为一个数据域field单独加密,由此,每个field都会有一个独立的fieldkey密钥,并可以对这个fieldkey进行单独授权,这样被授权方就可以读取同一个业务中的某些数据,却不需要将该业务进行拆分,同时,对于该条数据有且仅有一个datakey,其所有的fieldkey,都是由datakey通过密钥衍生的方式得到,并不需要在区块链二级节点本地存储所有的fieldkey,而仅需要存储datakey即可。请继续参阅图4,比如对于图4(a)所示为在一份商业合同中,有一条业务数据包括业务方名称、业务方的id号、业务方评级以及本次合同的货品单价等,请参阅图4(c),对于该条数据有且仅生成一个datakey,将datakey作为根密钥,其所有的fieldkey,都是由datakey通过密钥衍生的方式得到,此时不需要在区块链二级节点本地存储所有的fieldkey,而仅需要存储datakey即可,由datakey根据预设关系即可推算出子密钥,可以大大较小存储和管理的数据量,提高密码安全性的同时提高密码管理的效率。请继续参阅图4,采用本申请实施例的方法生成的加密结果如图4(c)所示,相比图4(b)所示的传统技术中多个数据的单独加密,本申请实施例中数据加密方式可以大大减小密码生成的数据量,提高密码管理的效率和存储效率。

s350、使用所述子密钥对所述数据域进行加密。

具体地,使用所述子密钥对所述数据域进行加密的形式有多种,只要能控制对每个数据域单独进行授权和访问即可。一般的情况下,对一个数据域使用一个子密钥进行加密,对不同的数据域使用不同的子密钥对应加密,使用子密钥将每部分数据域分别对应加密,以使每部分数据域使用对应的子密钥进行访问,从而实现对每部分数据域的单独授权和访问。比如,请继续参阅图4(c)所示,使用fieldkey1对企业名称进行加密以使用fieldkey1对企业名称进行单独访问,使用fieldkey2对企业id进行加密以使用fieldkey2对企业id进行单独访问,使用fieldkey3对企业评级进行加密以使用fieldkey3对企业评级进行单独访问,使用fieldkey4对货单价进行加密以使用fieldkey4对货单价进行单独访问,从而对不同的数据域使用不同的子密钥分别对应加密,进而实现对同一条业务数据的不同数据域使用单独的密钥进行单独授权和访问。

在一个实施例中,所述使用所述子密钥对所述数据域进行加密的步骤之后,还包括:

根据所述数据域对应的子密钥和所述数据域的数据密文获得哈希消息;

以所述哈希消息中前预设数量字节的字符作为哈希消息校验码。

具体地,根据所述数据域对应的子密钥和所述数据域的数据密文获得哈希消息,以所述哈希消息中前预设数量字节的字符作为哈希消息校验码。比如,使用生成的fieldkey对相应的数据域进行加密,同时以当前的feildkey为密钥,为每个加密的数据密文计算hmac,为了减少区块链的存储,可以最后取该hmac的前4个字节,作为最后的校验码hmac,最后,将所有数据域的加密密文和校验码hmac发送到区块链上。当要进行某个数据域单独授权的时候,可以将该fieldkey直接授权给对方,而对方收到fieldkey后,可以首先对区块链上的数据校验hmac是否正确,由此确保该fieldkey是正确的。如果需要将该业务下的所有fieldkey全部授权,可以直接将datakey、iv及stepfactor直接授权给对方,则对方可以计算出所有的fieldkey并解密全部的数据。其中,哈希消息认证码,英文为hash-basedmessageauthenticationcode,缩写为hmac,又可以称为哈希消息校验码,hmac是密钥相关的哈希运算消息认证码,hmac运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。

在本申请实施例中提供了一种精细粒度的加密数据授权方式,使得业务端能够对业务数据进行一次加密处理就可以单独的灵活控制该业务数据中不同部分数据的授权,以实现哪些部分数据可以被查看,哪些部分数据不可以被查看,哪些数据在交易谈判过程中在什么时间允许用户查看,以提高对业务数据掌控的灵活性和处理效率,从而可以实现精细粒度的加密数据授权方法以对同一条业务数据中的不同数据域进行单独授权。

需要说明的是,上述各个实施例所述的数据加密方法,可以根据需要将不同实施例中包含的技术特征重新进行组合,以获取组合后的实施方案,但都在本申请要求的保护范围之内。

请参阅图5,图5为本申请实施例提供的数据加密装置的示意性框图。对应于上述数据加密方法,本申请实施例还提供一种数据加密装置。如图5所示,该数据加密装置包括用于执行上述数据加密方法的单元,该装置可以被配置于服务器等计算机设备中。具体地,请参阅图5,该数据加密装置500包括第一获取单元501、划分单元502、生成单元503、衍生单元504及加密单元505。

其中,第一获取单元501,用于获取待加密数据;

划分单元502,用于根据预设规则将所述待加密数据划分为不同数据域;

生成单元503,用于通过第一预设方式生成根密钥,并获取初始向量和步长;

衍生单元504,用于基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥;

加密单元505,用于使用所述子密钥对所述数据域进行加密。

请参阅图6,图6为本申请实施例提供的数据加密装置的另一个示意性框图。如图6所示,所述划分单元502包括:

转换子单元5021,用于将所述待加密数据转换成键值对;

划分子单元5022,用于以每一个键值对作为一个数据域将所述待加密数据划分为多个数据域。

在一个实施例中,所述第一获取单元501,用于获取json格式的待加密数据;

所述划分单元502,用于将所述json格式的待加密数据中的每一个键值对作为一个数据域以将所述待加密数据划分为多个数据域。

请继续参阅图6,如图6所示,所述数据加密装置500还包括:

处理单元506,用于将json格式的所述待加密数据进行扁平化处理后得到一维的json格式的待加密数据。

请继续参阅图6,如图6所示,所述衍生单元504包括:

第一衍生子单元5041,用于使用所述根密钥和所述初始向量进行密钥衍生得到第一子密钥;

第一得到子单元5042,用于根据所述初始向量和所述步长的预设函数关系得到第二初始向量;

第二衍生子单元5043,用于使用所述根密钥和所述第二初始向量进行密钥衍生得到第二子密钥;

第二得到子单元5044,用于根据所述第二初始向量和所述步长的所述预设函数关系得到第三初始向量;

第三衍生子单元5045,用于使用所述根密钥和所述第三初始向量进行密钥衍生得到第三子密钥;

循环子单元5046,用于循环上述过程,直至衍生出预设数量子密钥。

在一个实施例中,所述预设函数关系为预设线性函数关系。

请继续参阅图6,如图6所示,所述数据加密装置500还包括:

第二获取单元507,用于根据所述数据域对应的子密钥和所述数据域的数据密文获得哈希消息;

得到单元508,用于以所述哈希消息中前预设数量字节的字符作为哈希消息校验码。

需要说明的是,所属领域的技术人员可以清楚地了解到,上述数据加密装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。

同时,上述数据加密装置中各个单元的划分和连接方式仅用于举例说明,在其它实施例中,可将数据加密装置按照需要划分为不同的单元,也可将数据加密装置中各单元采取不同的连接顺序和方式,以完成上述数据加密装置的全部或部分功能。

上述数据加密装置可以实现为一种计算机程序的形式,该计算机程序可以在如图7所示的计算机设备上运行。

请参阅图7,图7是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备700可以是台式机电脑或者服务器等计算机设备,也可以是其它设备中的组件或者部件。

参阅图7,该计算机设备700包括通过系统总线701连接的处理器702、存储器和网络接口705,其中,存储器可以包括非易失性存储介质703和内存储器704。

该非易失性存储介质703可存储操作系统7031和计算机程序7032。该计算机程序7032被执行时,可使得处理器702执行一种上述数据加密方法。

该处理器702用于提供计算和控制能力,以支撑整个计算机设备800的运行。

该内存储器704为非易失性存储介质703中的计算机程序7032的运行提供环境,该计算机程序7032被处理器702执行时,可使得处理器702执行一种上述数据加密方法。

该网络接口705用于与其它设备进行网络通信。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图7所示实施例一致,在此不再赘述。

其中,所述处理器702用于运行存储在存储器中的计算机程序7032,以实现如下步骤:获取待加密数据;根据预设规则将所述待加密数据划分为不同数据域;通过第一预设方式生成根密钥,并获取初始向量和步长;基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥;使用所述子密钥对所述数据域进行加密。

在一实施例中,所述处理器702在实现所述根据预设规则将所述待加密数据划分为不同数据域的步骤时,具体实现以下步骤:

将所述待加密数据转换成键值对;

以每一个键值对作为一个数据域将所述待加密数据划分为多个数据域。

在一实施例中,所述处理器702在实现所述获取待加密数据的步骤时,具体实现以下步骤:

获取json格式的待加密数据;

所述处理器702在实现所述根据预设规则将所述待加密数据划分为不同数据域的步骤时,具体实现以下步骤:

将所述json格式的待加密数据中的每一个键值对作为一个数据域以将所述待加密数据划分为多个数据域。

在一实施例中,所述处理器702在实现所述获取json格式的待加密数据的步骤之后,还实现以下步骤:

将json格式的所述待加密数据进行扁平化处理后得到一维的json格式的待加密数据。

在一实施例中,所述处理器702在实现所述基于所述根密钥、所述初始向量和步长通过第二预设方式衍生出多个子密钥的步骤时,具体实现以下步骤:

使用所述根密钥和所述初始向量进行密钥衍生得到第一子密钥;

根据所述初始向量和所述步长的预设函数关系得到第二初始向量;

使用所述根密钥和所述第二初始向量进行密钥衍生得到第二子密钥;

根据所述第二初始向量和所述步长的所述预设函数关系得到第三初始向量;

使用所述根密钥和所述第三初始向量进行密钥衍生得到第三子密钥;

循环上述过程,直至衍生出预设数量子密钥。

在一实施例中,所述预设函数关系为预设线性函数关系。

在一实施例中,所述处理器702在实现所述使用所述子密钥对所述数据域进行加密的步骤之后,还实现以下步骤:

根据所述数据域对应的子密钥和所述数据域的数据密文获得哈希消息;

以所述哈希消息中前预设数量字节的字符作为哈希消息校验码。

应当理解,在本申请实施例中,处理器702可以是中央处理单元(centralprocessingunit,cpu),该处理器702还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来完成,该计算机程序可存储于一计算机可读存储介质。该计算机程序被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。

因此,本申请还提供一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使处理器执行如下步骤:

一种计算机程序产品,当其在计算机上运行时,使得计算机执行以上各实施例中所描述的数据加密方法的步骤。

所述计算机可读存储介质可以是前述设备的内部存储单元,例如设备的硬盘或内存。所述计算机可读存储介质也可以是所述设备的外部存储设备,例如所述设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述计算机可读存储介质还可以既包括所述设备的内部存储单元也包括外部存储设备。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述计算机可读存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本申请实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。

该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,终端,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

以上所述,仅为本申请的具体实施方式,但本申请明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

因此,本申请的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1