一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-12-19 22:51:12 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,尤其涉及一种数据保密方法、装置、计算机设备和存储介质。


背景技术:

2.在嵌入式软件开发过程中,程序文件常常以二进制文件的方式进行流转,而在这些二进制文件中通常存在一些敏感的明文数据(如软件信息、参数信息、密钥信息等)。当第三方采用二进制工具打开二进制文件,会很容易发现这些敏感的明文数据,从而造成信息泄露。


技术实现要素:

3.有鉴于此,本技术实施例提供了一种数据保密方法、装置、计算机设备和存储介质,用以解决二进制文件中敏感的明文数据容易泄露的问题。
4.第一方面,本技术实施例提供一种数据保密方法,包括:
5.获取原始数据;
6.将所述原始数据复制到缓存区,得到缓存数据;
7.取所述缓存数据的首个数据作为输出数据的首个数据;
8.根据所述缓存数据的首个数据和混淆值确定数据索引号;
9.将所述缓存数据按照所述数据索引号输入到输出区,得到所述输出数据。
10.如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将所述缓存数据的首个数据的数组位置作为初始数据索引号;
11.根据所述混淆值和所述初始数据索引号获取中间数据索引号,其中,当每次从所述缓存数据输入数据到所述输出区后,所述缓存数据删除掉当次输入的数据,且所述缓存区的数组长度减一,所述中间数据索引号为每次所述缓存区的数组长度变化后所确定的索引号,以根据所述中间数据索引号确定下一输入到所述输出区的数据。
12.如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,将所述混淆值和所述初始数据索引号对应的数据做异或运算,得到第一异或值;
13.采用所述第一异或值除以所述缓存区的长度后求余数,得到第一中间数据索引号;
14.将所述混淆值和所述第一中间数据索引号对应的数据做异或运算,得到第二异或值;
15.采用所述第二异或值除以长度变化后的所述缓存区的长度后求余数,得到第二中间数据索引号,并以此类推获取剩余的所述中间数据索引号,以按照所述中间数据索引号将所述缓存数据输入到所述输出区,得到所述输出数据。
16.如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
17.将所述输出数据复制到所述缓存区;
18.将所述缓存区中的数据进行逆序操作,得到所述缓存数据;
19.除了所述缓存数据中的最后一个数据,按顺序每次从所述缓存数据中取出第一数据和第二数据,其中,所述第一数据和所述第二数据相邻;
20.根据所述第二数据和所述混淆值确定所述第一数据的数据索引号,具体包括:x=(d[a 1]^sv)%(a 1),其中,x表示所述第一数据的数据索引号,d[a 1]表示所述第二数据,^表示异或计算,sv表示所述混淆值,%表示求余计算,a表示所述第一数据在所述缓存数据中的标号,a 1表示所述第二数据在所述缓存数据中的标号;
[0021]
根据所述第一数据的数据索引号将所述第一数据输入到所述输出区,最后,将所述缓存数据中的最后一个数据输入到所述输出区作为所述输出数据的首个数据,所述输出区中已存在的数据均向后移动一个位置。
[0022]
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据所述第一数据的数据索引号将所述第一数据输入到所述输出区,包括:
[0023]
根据所述第一数据的数据索引号将所述缓存数据中的第一个数据输入到所述输出区;
[0024]
将所述第二数据作为第二轮输入的所述第一数据,并获取所述缓存数据中与所述第二轮输入的所述第一数据相邻的数据作为所述第二轮输入的所述第二数据;
[0025]
根据所述第二轮输入的所述第二数据和所述混淆值确定所述第二轮输入的所述第一数据的数据索引号;
[0026]
根据所述第二轮输入的所述第一数据的数据索引号将所述缓存数据中的第二个数据输入到所述输出区;
[0027]
以此类推,除了所述缓存数据中的最后一个数据,根据每一轮输入的所述第一数据的数据索引号将所述缓存数据中对应位置的数据输入到所述输出区,其中,在每次输入数据时,将每一轮输入的所述第一数据的数据索引号对应位置及之后的数据向后移动一个位置。
[0028]
第二方面,本技术实施例提供一种数据保密装置,包括:
[0029]
第一获取模块,用于获取原始数据;
[0030]
第二获取模块,用于将所述原始数据复制到缓存区,得到缓存数据;
[0031]
第一确定模块,用于取所述缓存数据的首个数据作为输出数据的首个数据;
[0032]
第二确定模块,用于根据所述缓存数据的首个数据和混淆值确定数据索引号;
[0033]
第三获取模块,用于将所述缓存数据按照所述数据索引号输入到输出区,得到所述输出数据。
[0034]
进一步地,所述第二确定模块具体用于:
[0035]
将所述缓存数据的首个数据的数组位置作为初始数据索引号;
[0036]
根据所述混淆值和所述初始数据索引号获取中间数据索引号,其中,当每次从所述缓存数据输入数据到所述输出区后,所述缓存数据删除掉当次输入的数据,且所述缓存区的数组长度减一,所述中间数据索引号为每次所述缓存区的数组长度变化后所确定的索引号,以根据所述中间数据索引号确定下一输入到所述输出区的数据。
[0037]
进一步地,所述第二确定模块还具体用于:
[0038]
将所述混淆值和所述初始数据索引号对应的数据做异或运算,得到第一异或值;
[0039]
采用所述第一异或值除以所述缓存区的长度后求余数,得到第一中间数据索引号;
[0040]
将所述混淆值和所述第一中间数据索引号对应的数据做异或运算,得到第二异或值;
[0041]
采用所述第二异或值除以长度变化后的所述缓存区的长度后求余数,得到第二中间数据索引号,并以此类推获取剩余的所述中间数据索引号,以按照所述中间数据索引号将所述缓存数据输入到所述输出区,得到所述输出数据。
[0042]
进一步地,该数据保密装置还具体用于:
[0043]
将所述输出数据复制到所述缓存区;
[0044]
将所述缓存区中的数据进行逆序操作,得到所述缓存数据;
[0045]
除了所述缓存数据中的最后一个数据,按顺序每次从所述缓存数据中取出第一数据和第二数据,其中,所述第一数据和所述第二数据相邻;
[0046]
根据所述第二数据和所述混淆值确定所述第一数据的数据索引号,具体包括:x=(d[a 1]^sv)%(a 1),其中,x表示所述第一数据的数据索引号,d[a 1]表示所述第二数据,^表示异或计算,sv表示所述混淆值,%表示求余计算,a表示所述第一数据在所述缓存数据中的标号,a 1表示所述第二数据在所述缓存数据中的标号;
[0047]
根据所述第一数据的数据索引号将所述第一数据输入到所述输出区,最后,将所述缓存数据中的最后一个数据输入到所述输出区作为所述输出数据的首个数据,所述输出区中已存在的数据均向后移动一个位置。
[0048]
进一步地,该数据保密装置还具体用于:
[0049]
根据所述第一数据的数据索引号将所述缓存数据中的第一个数据输入到所述输出区;
[0050]
将所述第二数据作为第二轮输入的所述第一数据,并获取所述缓存数据中与所述第二轮输入的所述第一数据相邻的数据作为所述第二轮输入的所述第二数据;
[0051]
根据所述第二轮输入的所述第二数据和所述混淆值确定所述第二轮输入的所述第一数据的数据索引号;
[0052]
根据所述第二轮输入的所述第一数据的数据索引号将所述缓存数据中的第二个数据输入到所述输出区;
[0053]
以此类推,除了所述缓存数据中的最后一个数据,根据每一轮输入的所述第一数据的数据索引号将所述缓存数据中对应位置的数据输入到所述输出区,其中,在每次输入数据时,将每一轮输入的所述第一数据的数据索引号对应位置及之后的数据向后移动一个位置。
[0054]
第三方面,本技术实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时执行如第一方面所述数据保密方法的步骤。
[0055]
第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如第一方面所述数据保密方法的步骤。
[0056]
在本技术实施例中,首先获取原始数据,并将原始数据复制到缓存区得到缓存数据,以通过缓存区对原始数据进行加密保护;然后取缓存数据的首个数据作为输出数据的首个数据,以从数组头部开始选取数据输出到输出区,且便于数据还原;接着根据缓存数据的首个数据确定数据索引号,以根据数据索引号选取每次输出的数据,将数据按照数据索引号打乱输入到输出区;最后将缓存数据按照所述数据索引号输入到输出区,得到所述输出数据。本技术能够将原始数据按照数据索引号打乱后生成输出数据,且支持将输出数据还原为原始数据,能够提高信息安全,将二进制文件中敏感的明文数据变成密文数据进行保护。
附图说明
[0057]
为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0058]
图1是本技术实施例中一种数据加密的数据流图;
[0059]
图2是本技术实施例中又一种数据加密的数据流图;
[0060]
图3是本技术实施例中一种数据还原的数据流图;
[0061]
图4是本技术实施例中又一种数据还原的数据流图;
[0062]
图5是本技术实施例中图4中将d[n-2]插入到输出区后的一数据流图;
[0063]
图6是本技术实施例中一种与数据保密方法一一对应的装置原理框图;
[0064]
图7是本技术实施例中一种计算机设备的示意图。
具体实施方式
[0065]
为了更好的理解本技术的技术方案,下面结合附图对本技术实施例进行详细描述。
[0066]
应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
[0067]
在本技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
[0068]
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的相同的字段,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0069]
应当理解,尽管在本技术实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本技术实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
[0070]
取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
[0071]
本技术提供了一种数据保密方法。该数据保密方法应用在文件信息保密的场景,用户可以采用该数据保密方法对如嵌入式程序文件等的以二进制存储方式的文件进行保护,防止文件信息的泄露。该数据保密方法包括如下步骤:
[0072]
s10:获取原始数据。
[0073]
其中,该原始数据具体可以是bin文件中采用二进制方式存储的数据。该数据中存在一些敏感的明文数据,如软件信息、参数信息、密钥信息等。这些敏感的明文数据需要进行保密,以防止第三方采用二进制工具打开bin文件获取到这些数据。
[0074]
s20:将原始数据复制到缓存区,得到缓存数据。
[0075]
其中,该缓存区可以理解为是一个对数据进行中转处理的数据存储空间。这样既不直接破坏原始数据,又可以对原始数据进行保密操作。
[0076]
s30:取缓存数据的首个数据作为输出数据的首个数据。
[0077]
在一实施例中,缓存区中的缓存数据具体可以数组的数据结构方式存在。缓存数据中的首个数据具体可以是数组中的d[0],即第0数值位置上存储的数据。图1是本技术实施例中一种数据加密的数据流图,如图1所示,in_array(输入数组,这里具体是指原始数据)复制到buffer_array(缓存数组,这里具体是指缓存区)中,并将buffer_array的首个数据d[0]输入到out_array(输出数组,这里具体是指输出区)的首个数组位置,作为out_array的首个数据d[0]。本技术实施例中,取缓存数据的首个数据作为输出数据的首个数据能够从数组头部利用混淆值选取数据输出到输出区,且便于数据还原。
[0078]
s40:根据缓存数据的首个数据和混淆值确定数据索引号。
[0079]
其中,混淆值(saltval,简称sv)在本技术实施例中用于打乱待输出的数据的输出次序,具体可以是一个随机数。
[0080]
其中,数据索引号是缓存数据输入到输出区时所参考的位置信息。可以理解地,缓存数据中的数据是一个一个输入到输出区中的,而每次数据的输入由于经过混淆值的处理具有一定随机性。在本技术实施例中,该随机性可来源于每次变化的数据索引号,例如,该数据索引号每次变化都是依照上一次输入数据的数据索引号来确定,则缓存数据的首个数据在确定数据索引号时,将作为第一个数据索引号确定后面的数据索引号,从而达到缓存数据打乱输入到输出区的效果。
[0081]
s50:将缓存数据按照数据索引号输入到输出区,得到输出数据。
[0082]
本技术实施例中,首先获取原始数据,并将原始数据复制到缓存区得到缓存数据,以通过缓存区对原始数据进行加密保护;然后取缓存数据的首个数据作为输出数据的首个数据,以从数组头部开始选取数据输出到输出区,且便于数据还原;接着根据缓存数据的首个数据确定数据索引号,以根据数据索引号选取每次输出的数据,将数据按照数据索引号打乱输入到输出区;最后将缓存数据按照数据索引号输入到输出区,得到输出数据。本技术能够将原始数据按照数据索引号打乱后生成输出数据,且支持将输出数据还原为原始数据,能够提高信息安全,将二进制文件中敏感的明文数据变成密文数据进行保护。
[0083]
进一步地,在步骤s40中,即根据缓存数据的首个数据和混淆值确定数据索引号的
步骤中,具体包括如下步骤:
[0084]
s41:将缓存数据的首个数据的数组位置作为初始数据索引号。
[0085]
在一实施例中,缓存数据的首个数据不仅作为输出数据的首个数据,还可将其数组位置d[0](缓存数据中的第一个数据,编号从0开始)作为初始数据索引号,以通过该初始数据索引号计算出下一个输入到输出区的数据索引号。
[0086]
s42:根据混淆值和初始数据索引号获取中间数据索引号,其中,当每次从缓存数据输入数据到输出区后,缓存数据删除掉当次输入的数据,且缓存区的数组长度减一,中间数据索引号为每次缓存区的数组长度变化后所确定的索引号,以根据中间数据索引号确定下一输入到输出区的数据。
[0087]
其中,中间数据索引号是个相对概念,由于本技术实施例中的缓存区在每次向输出区输入数据后,其数组长度将减一,而由于每次缓存区的数组长度变短后其数据索引号都将根据上一缓存区对应的数据索引号进行变化,则该每次数组长度变短后的缓存区对应的数据索引号称为中间数据索引号。
[0088]
在一实施例中,通过该中间数据索引号可在每次缓存区变化后确定下一个要输入到输出区的数据,该中间索引号根据混淆值和初始数据索引号在多次缓存区的数组长度变短过程中变化获取,具有可追溯性,用户可利用该特性还原数据加密后的原始数据。
[0089]
进一步地,在步骤s42中,即根据混淆值和初始数据索引号获取中间数据索引号步骤中,具体包括如下步骤:
[0090]
s421:将混淆值和初始数据索引号对应的数据做异或运算,得到第一异或值。
[0091]
其中,初始数据索引号对应的数据是指缓存数据中的首个数据。
[0092]
s422:采用第一异或值除以缓存区的长度后求余数,得到第一中间数据索引号。
[0093]
s423:将混淆值和第一中间数据索引号对应的数据做异或运算,得到第二异或值。
[0094]
其中,第一中间数据索引号对应的数据是指从缓存数据中所取出的第二个数据,以此类推,第二中间数据索引号对应的数据是指从缓存数据中所取出的第三个数据。
[0095]
s424:采用第二异或值除以长度变化后的缓存区的长度后求余数,得到第二中间数据索引号,并以此类推获取剩余的中间数据索引号,以按照中间数据索引号将缓存数据输入到输出区,得到输出数据。
[0096]
步骤s421-s424中,可用以下公式进行概括:x=(d[x]^sv)%n,其中,x为当前需要取出的数据索引号,d[x]表示上一个取出的数据,^表示异或计算,sv为混淆值,具体可以是预设的一个随机数,%为求余计算,n为上一个缓存区的数组长度,通过该公式可确定每次数组长度变短后的缓存区所对应的数据索引号,也即中间数据索引号。
[0097]
图2是本技术实施例中又一种数据加密的数据流图,如图2所示,n表示新的缓存区(数组长度变化后的缓存区)的数组长度,每次将缓存区中的数据输入到输出区后,缓存区的长度便减去1(由old buffer_array得到new buffer_array),再按照x=(d[x]^sv)%n计算得到的数据索引号从缓存区的数组中找到下一个需要输出的数据,以此类推,将缓存区中的数据打乱输入到输出区中。
[0098]
进一步地,在步骤s50之后,即得到输出数据之后,该数据保密方法还包括如下步骤:
[0099]
将加密处理后的数据还原为原始数据。具体地:
[0100]
s51:将输出数据复制到缓存区。
[0101]
需要说明的是,该缓存区是一存储概念,与上文提及的将原始数据复制到缓存区中的缓存区可以是物理位置上相同的存储空间,也可以是物理位置上不同的存储空间,只要是用于存储中间状态的数据都可以称为缓存区。
[0102]
s52:将缓存区中的数据进行逆序操作,得到缓存数据。
[0103]
需要说明的是,由于还原过程中后续数据在插入到输出区时需要后移数据索引号及之后数组位置的数据,采用该逆序操作,在还原数据时可以减少更多的计算,不用再对插入后的数据进行位置调整。
[0104]
图3是本技术实施例中一种数据还原的数据流图,如图3所示,将缓存区中的数据进行逆序操作,得到缓存数据。需要说明的是,图中in_array中的数据为原加密后的数据,可以直接作为in_array(输入数组,这里具体是指加密后的数据)逆序输出到buffer_array,也可以将in_array中的数据先复制到buffer_array1中后再逆序输出到buffer_array2,在此不对具体的数据操作进行限定,只要最后缓存区中的数据为原加密后的数据逆序得到的即可。
[0105]
s53:除了缓存数据中的最后一个数据,按顺序每次从缓存数据中取出第一数据和第二数据,其中,第一数据和第二数据相邻。
[0106]
可以理解地,设缓存数据长度为n,则缓存数据包括数据d[0]-d[n-1],按顺序每次从缓存数据中取出第一数据和第二数据可以理解为按顺序每次从缓存数据中取两个相邻的数据,如第一次取d[0]和d[1],第二次取d[1]和d[2],第三次取d[2]和d[3],以此类推,直到取到d[n-3]和d[n-2]停止。
[0107]
s54:根据第二数据和混淆值确定第一数据的数据索引号,具体包括:x=(d[a 1]^sv)%(a 1),其中,x表示第一数据的数据索引号,d[a 1]表示第二数据(则d[a]表示第一数据),^表示异或计算,sv表示所述混淆值,%表示求余计算,a表示第一数据在缓存数据中的标号,a 1表示第二数据在缓存数据中的标号。
[0108]
其中,该混淆值和数据加密过程所采用的混淆值相同。
[0109]
其中,%(a 1)是指对第二数据在缓存数据中的标号所对应的长度进行求余运算。例如,当a为2时,a 1为3,d[3](d[2 1])在缓存数据所在数组中的标号为3,其标号所对应的长度为3,即第二数据d[a 1]在数组中的标号为a 1,其标号所对应的长度为a 1。
[0110]
在一实施例中,第一数据的数据索引号决定了第一数据输入到输出区的具体位置,而计算该第一数据的数据索引时根据与第一数据相邻的第二数据,通过x=(d[a 1]^sv)%(a 1)计算得到,这样可利用该第二数据确定第一数据需要输入到输出区的位置。
[0111]
s55:根据第一数据的数据索引号将第一数据输入到输出区,最后,将缓存数据中的最后一个数据输入到输出区作为输出数据的首个数据,输出区中已存在的数据均向后移动一个位置。
[0112]
进一步地,在步骤s55中,即根据第一数据的数据索引号将第一数据输入到输出区,具体包括如下步骤:
[0113]
s551:根据第一数据的数据索引号将缓存数据中的第一个数据输入到输出区。
[0114]
s552:将第二数据作为第二轮输入的第一数据,并获取缓存数据中与第二轮输入的第一数据相邻的数据作为第二轮输入的第二数据。
[0115]
s553:根据第二轮输入的第二数据和混淆值确定第二轮输入的第一数据的数据索引号。
[0116]
s554:根据第二轮输入的第一数据的数据索引号将缓存数据中的第二个数据输入到输出区。
[0117]
s555:以此类推,除了缓存数据中的最后一个数据,根据每一轮输入的第一数据的数据索引号将缓存数据中对应位置的数据输入到输出区,其中,在每次输入数据时,将每一轮输入的第一数据的数据索引号对应位置及之后的数据向后移动一个位置。
[0118]
步骤s551-s555中,在数据还原过程中,采用的是数据插入的方式将数据逐个插入到输出区中。同样地,与数据加密过程类似,每次插入数据到输出区中的第一数据的数据索引号都是变化的,该第一数据的数据索引号的计算方式可以采用下式表示:x=(d[a 1]^sv)%(a 1),这样,可利用该第二数据确定第一数据需要输入到输出区的位置。
[0119]
图4是本技术实施例中又一种数据还原的数据流图,如图4所示,将按照公式x=(d[a 1]^sv)%(a 1)计算得到的第一数据的数据索引号确定每次需要插入到输出区的数据。依次类推,将缓存区中前的总长度-1的数据插入到输出区中,其中,在每次将缓存区中的数据插入时,将第一数据的数据索引号对应位置及之后的数据向后移动一个位置。
[0120]
图5是本技术实施例中图4中将d[n-2]插入到输出区后的一数据流图,如图5所示,缓存区的最后一个数据d[n-1]将插入到输出区的第一个数组位置上,其他已插入的数据均往后移动一个位置,这样,结合图4的数据处理过程便可将加密的原始数据进行还原。
[0121]
在本技术实施例中,首先获取原始数据,并将原始数据复制到缓存区得到缓存数据,以通过缓存区对原始数据进行加密保护;然后取缓存数据的首个数据作为输出数据的首个数据,以从数组头部开始选取数据输出到输出区,且便于数据还原;接着根据缓存数据的首个数据确定数据索引号,以根据数据索引号选取每次输出的数据,将数据按照数据索引号打乱输入到输出区;最后将缓存数据按照数据索引号输入到输出区,得到输出数据。本技术能够将原始数据按照数据索引号打乱后生成输出数据,且支持将输出数据还原为原始数据,能够提高信息安全,将二进制文件中敏感的明文数据变成密文数据进行保护。
[0122]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
[0123]
图6是本技术实施例中一种与数据保密方法一一对应的装置原理框图。该数据保密装置包括第一获取模块10、第二获取模块20、第一确定模块30、第二确定模块40和第三获取模块50。
[0124]
第一获取模块10,用于获取原始数据;
[0125]
第二获取模块20,用于将原始数据复制到缓存区,得到缓存数据;
[0126]
第一确定模块30,用于取缓存数据的首个数据作为输出数据的首个数据;
[0127]
第二确定模块40,用于根据缓存数据的首个数据和混淆值确定数据索引号;
[0128]
第三获取模块50,用于将缓存数据按照数据索引号输入到输出区,得到输出数据。
[0129]
进一步地,第二确定模块40具体用于:
[0130]
将缓存数据的首个数据的数组位置作为初始数据索引号;
[0131]
根据混淆值和初始数据索引号获取中间数据索引号,其中,当每次从缓存数据输
入数据到输出区后,缓存数据删除掉当次输入的数据,且缓存区的数组长度减一,中间数据索引号为每次缓存区的数组长度变化后所确定的索引号,以根据中间数据索引号确定下一输入到输出区的数据。
[0132]
进一步地,第二确定模块40还具体用于:
[0133]
将混淆值和初始数据索引号对应的数据做异或运算,得到第一异或值;
[0134]
采用第一异或值除以缓存区的长度后求余数,得到第一中间数据索引号;
[0135]
将混淆值和第一中间数据索引号对应的数据做异或运算,得到第二异或值;
[0136]
采用第二异或值除以长度变化后的缓存区的长度后求余数,得到第二中间数据索引号,并以此类推获取剩余的中间数据索引号,以按照中间数据索引号将缓存数据输入到输出区,得到输出数据。
[0137]
进一步地,该数据保密装置还具体用于:
[0138]
将输出数据复制到缓存区;
[0139]
将缓存区中的数据进行逆序操作,得到缓存数据;
[0140]
除了缓存数据中的最后一个数据,按顺序每次从缓存数据中取出第一数据和第二数据,其中,第一数据和第二数据相邻;
[0141]
根据第二数据和混淆值确定第一数据的数据索引号,具体包括:x=(d[a 1]^sv)%(a 1),其中,x表示第一数据的数据索引号,d[a 1]表示第二数据,^表示异或计算,sv表示混淆值,%表示求余计算,a表示第一数据在缓存数据中的标号,a 1表示第二数据在缓存数据中的标号;
[0142]
根据第一数据的数据索引号将第一数据输入到输出区,最后,将缓存数据中的最后一个数据输入到输出区作为输出数据的首个数据,输出区中已存在的数据均向后移动一个位置。
[0143]
进一步地,该数据保密装置还具体用于:
[0144]
根据第一数据的数据索引号将缓存数据中的第一个数据输入到输出区;
[0145]
将第二数据作为第二轮输入的第一数据,并获取缓存数据中与第二轮输入的第一数据相邻的数据作为第二轮输入的第二数据;
[0146]
根据第二轮输入的第二数据和混淆值确定第二轮输入的第一数据的数据索引号;
[0147]
根据第二轮输入的第一数据的数据索引号将缓存数据中的第二个数据输入到输出区;
[0148]
以此类推,除了缓存数据中的最后一个数据,根据每一轮输入的第一数据的数据索引号将缓存数据中对应位置的数据输入到输出区,其中,在每次输入数据时,将每一轮输入的第一数据的数据索引号对应位置及之后的数据向后移动一个位置。
[0149]
在本技术实施例中,首先获取原始数据,并将原始数据复制到缓存区得到缓存数据,以通过缓存区对原始数据进行加密保护;然后取缓存数据的首个数据作为输出数据的首个数据,以从数组头部开始选取数据输出到输出区,且便于数据还原;接着根据缓存数据的首个数据确定数据索引号,以根据数据索引号选取每次输出的数据,将数据按照数据索引号打乱输入到输出区;最后将缓存数据按照数据索引号输入到输出区,得到输出数据。本技术能够将原始数据按照数据索引号打乱后生成输出数据,且支持将输出数据还原为原始数据,能够提高信息安全,将二进制文件中敏感的明文数据变成密文数据进行保护。
[0150]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机可读指令,该计算机可读指令被处理器执行时实现如实施例所述数据保密方法的步骤。
[0151]
图7是本技术实施例中一种计算机设备的示意图。
[0152]
如图7所示,计算机设备110包括处理器111、存储器112以及存储在存储器112中并可在处理器111上运行的计算机可读指令113。处理器111执行计算机可读指令113时实现数据保密方法的各个步骤。
[0153]
示例性地,计算机可读指令113可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器112中,并由处理器111执行,以完成本技术。一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述计算机可读指令113在计算机设备110中的执行过程。
[0154]
计算机设备110可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,处理器111、存储器112。本领域技术人员可以理解,图7仅仅是计算机设备110的示例,并不构成对计算机设备110的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入输出设备、网络接入设备、总线等。
[0155]
所称处理器111可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0156]
存储器112可以是计算机设备110的内部存储单元,例如计算机设备110的硬盘或内存。存储器112也可以是计算机设备110的外部存储设备,例如计算机设备110上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,存储器112还可以既包括计算机设备110的内部存储单元也包括外部存储设备。存储器112用于存储计算机可读指令以及计算机设备所需的其他程序和数据。存储器112还可以用于暂时地存储已经输出或者将要输出的数据。
[0157]
本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
[0158]
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
[0159]
本技术实施例中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(content delivery network,cdn)、以及大数据和人工智能平台等基础云计算服务的云
服务器。
[0160]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0161]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,也可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读存储介质中,该计算机可读指令在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机可读指令包括计算机可读指令代码,所述计算机可读指令代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机可读指令代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
[0162]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0163]
以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献