CN116015633A - 数据加密方法、数据解密方法及相关装置 - Google Patents
数据加密方法、数据解密方法及相关装置 Download PDFInfo
- Publication number
- CN116015633A CN116015633A CN202211596462.5A CN202211596462A CN116015633A CN 116015633 A CN116015633 A CN 116015633A CN 202211596462 A CN202211596462 A CN 202211596462A CN 116015633 A CN116015633 A CN 116015633A
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- bits
- encrypted data
- bit operation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明实施例提出一种数据加密方法、数据解密方法及相关装置,涉及计算机技术领域。该数据加密方法根据生成的随机数确定位运算参数,将原始数据进行按位取反操作,得到取反结果,根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;其中,加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。可见,本发明实施例仅需少量的运算操作就可以完成数据的加解密过程,有效提高了加解密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据加密方法、数据解密方法及相关装置。
背景技术
随着信息技术的飞速发展,信息安全成为人们越来越关注的问题,信息如果遭到非法窃听、篡改、截取或者破坏,将会造成不可估量的损失。例如,在游戏中有很多配置文件的信息是不希望明文展示的;如果以明文展示的话,可能会造成玩家误改,或者是被其他工作室和外挂破解,对游戏进行破坏,从而对公司造成很大的损失。
为了保证信息安全,现有技术通常会使用各种各样的数据加密方式。例如,使用对称的加密方法(如DES、3DES、AES等)或者非对称的加密方法(如RSA、DSA等),其中,对称的加密方法的主要特点是加密和解密使用同一个密钥;非对称的加密方法的主要特点是加密和解密使用不同密钥,这两个密钥分别为“公钥”和“私钥”,想要正常的完成加密解密过程,就必须配对使用。
由于上述加密方法都是比较常见的一些方法,容易被分析和破解,并且加解密过程比较复杂,故加解密速度比较慢,难以适应游戏等实时性要求比较高的场景。
发明内容
有鉴于此,本发明的目的在于提供一种数据加密方法、数据解密方法及相关装置,以解决现有的加解密方法存在的速度慢、容易被分析和破解的问题。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明提供一种数据加密方法,所述方法包括:
根据生成的随机数确定位运算参数;
将原始数据进行按位取反操作,得到取反结果;
根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
在可选的实施方式中,所述根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,包括:
将所述取反结果向右移p-s位,得到所述取反结果对应的高位数据;其中,p表示所述原始数据的数据类型对应的二进制位数;
将所述取反结果向左移p-s位,得到所述取反结果对应的低位数据;
将所述取反结果与位逻辑运算参数进行与操作,得到所述取反结果对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
将所述取反结果对应的高位数据、低位数据和中位数据进行或操作,得到所述原始数据对应的加密数据。
在可选的实施方式中,所述位逻辑运算参数通过算法((1<<(p-s*2))-1)<<s获得。
在可选的实施方式中,所述根据生成的随机数确定位运算参数,包括:
计算生成的随机数除以预设值的余数,并将所述余数加一,得到位运算参数;其中,所述预设值根据所述原始数据的数据类型对应的二进制位数设置。
第二方面,本发明提供一种数据解密方法,所述方法包括:
获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
根据所述随机数确定位运算参数;
根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;
对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
在可选的实施方式中,所述根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果,包括:
将所述加密数据向右移m-s位,得到所述加密数据对应的高位数据;其中,m表示所述加密数据的数据类型对应的二进制位数;
将所述加密数据向左移m-s位,得到所述加密数据对应的低位数据;
将所述加密数据与位逻辑运算参数进行与操作,得到所述加密数据对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
将所述加密数据对应的高位数据、低位数据和中位数据进行或操作,得到位运算结果。
第三方面,本发明提供一种数据加密装置,所述装置包括:
第一参数确定模块,用于根据生成的随机数确定位运算参数;
第一处理模块,用于将原始数据进行按位取反操作,得到取反结果;根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
第四方面,本发明提供一种数据解密装置,所述装置包括:
数据获取模块,用于获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
第二参数确定模块,用于根据所述随机数确定位运算参数;
第二处理模块,用于根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
第五方面,本发明提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述实施方式中任一项所述的数据加密方法,或者实现如前述实施方式中任一项所述的数据解密方法。
第六方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的数据加密方法,或者实现如前述实施方式中任一项所述的数据解密方法。
本发明实施例提供的数据加密方法、数据解密方法及相关装置,该数据加密方法根据生成的随机数确定位运算参数,将原始数据进行按位取反操作,得到取反结果,根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。可见,本发明实施例仅需少量的运算操作就可以完成数据的加解密过程,有效提高了加解密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的数据加密方法的一种流程示意图;
图2示出了本发明实施例提供的数据加密方法的一种代码实现示例图;
图3示出了本发明实施例提供的数据解密方法的一种流程示意图;
图4示出了本发明实施例提供的数据解密方法的一种代码实现示例图;
图5示出了本发明实施例提供的数据加密装置的一种功能模块图;
图6示出了本发明实施例提供的数据解密装置的一种功能模块图;
图7示出了本发明实施例提供的电子设备的一种方框示意图。
图标:500-数据加密装置;600-数据解密装置;700-电子设备;510-第一参数确定模块;520-第一处理模块;610-数据获取模块;620-第二参数确定模块;630-第二处理模块;710-存储器;720-处理器;730-通信模块。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
随着信息技术的飞速发展,人们对信息安全的要求也越来越高,加密技术成为解决信息安全问题的核心和关键。然而,传统的加解密方法都是比较常见且固定的加解密方式,容易被分析和破解,并且加解密过程比较复杂,故加解密速度比较慢,难以适应游戏等实时性要求比较高的场景。
基于此,本发明实施例提供了一种数据加密方法、数据解密方法及相关装置,其仅需少量的运算操作就可以完成数据的加解密过程,有效提高了加解密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
下面将结合附图对本发明的各实施例进行详细说明。
请参照图1,为本发明实施例提供的数据加密方法的一种流程示意图。需要说明的是,本发明实施例的数据加密方法并不以图1以及以下的具体顺序为限制,应当理解,在其他实施例中,本发明实施例的数据加密方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该数据加密方法可以应用在智能手机、平板电脑、个人电脑(Personal Computer,PC)等电子设备中,下面将对图1所示的具体流程进行详细阐述。
步骤S101,根据生成的随机数确定位运算参数。
在本实施例中,当向电子设备输入待加密的原始数据后,电子设备会随机生成一个随机数,并根据该随机数确定位运算参数。
其中,该随机数的取值范围为0~2147483647。
步骤S102,将原始数据进行按位取反操作,得到取反结果。
在本实施例中,该原始数据可以包括一个或者多个字符,并可通过字符串数组来存放,字符串数组中的每个元素存放一个字符。电子设备获取字符串数组中的每个字符,并将每个字符进行按位取反操作,获得原始数据中每个字符对应的取反结果。
步骤S103,根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;其中,加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。
在本实施例中,该电子设备在获得原始数据中每个字符对应的取反结果后,根据位运算参数对该取反结果进行位运算操作,实现将取反结果的前s位和后s位进行交换,得到原始数据中每个字符对应的加密数据。也即是说,利用位运算参数s,对取反结果的前s位和后s位重新进行组合,得到的加密数据的前s位和后s位相对于取反结果发生交换。
电子设备在得到原始数据对应的加密数据后,通过将该加密数据与随机数关联,便于后续解密过程中快速获取到随机数,并基于该随机数和加密数据解密出原始数据。
可见,本发明实施例提供的数据加密方法,其根据生成的随机数确定位运算参数,将原始数据进行按位取反操作,得到取反结果,根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。如此,仅需少量的运算操作就可以完成数据的加密过程,有效提高了加密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
可选地,上述步骤S101具体可以包括:计算生成的随机数除以预设值的余数,并将余数加一,得到位运算参数;其中,预设值根据原始数据的数据类型对应的二进制位数设置。
在本实施例中,假设原始数据的数据类型对应的二进制位数为p,则可设置预设值为p/2,将随机数和该预设值进行取模运算,然后将得到的余数加1,即可得到在1~p/2之间的数字(即位运算参数)。
例如,原始数据的数据类型为char类型,char类型对应的二进制位数p=8,则可设置预设值为p/2=4,通过对随机数进行模4运算,并对所得到的余数加1,就可以得到在1~4之间的位运算参数s。
可选地,上述步骤S103中根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,具体可以包括:
将取反结果向右移p-s位,得到取反结果对应的高位数据;其中,p表示原始数据的数据类型对应的二进制位数;将取反结果向左移p-s位,得到取反结果对应的低位数据;将取反结果与位逻辑运算参数进行与操作,得到取反结果对应的中位数据;其中,位逻辑运算参数的前s位与后s位为0,其余位为1;将取反结果对应的高位数据、低位数据和中位数据进行或操作,得到原始数据对应的加密数据。
在本实施例中,通过将取反结果向右移p-s位,可以保留取反结果中的前s位,屏蔽其余位上的数据,实现高位变低位;将取反结果向左移p-s位,可以保留取反结果中的后s位,屏蔽其余位上的数据,实现低位变高位;而基于位运算参数s得到的位逻辑运算参数的前s位与后s位为0,其余位为1,则将取反结果与位逻辑运算参数进行与操作后,可以保留取反结果中除前s位、后s位之外的中间部分,屏蔽前s位与后s位上的数据。最后,将取反结果对应的高位数据、低位数据和中位数据进行或操作,就可以得到原始数据对应的加密数据。
也即是说,本发明实施例通过对取反结果进行移位操作以及与操作,把取反结果中的高位部分、低位部分以及中间部分拆散,然后再重新组合,使得取反结果的高位部分(前s位)变为低位部分(后s位),低位部分变为高位部分,从而得到对应的加密数据。同时,由于位运算参数s是根据随机数确定的,有一定随机性,则每次加密时,取反结果的高位部分、中间部分以及低位部分的范围也是不一样的,故即便是基于同样的原始数据,最终得到的加密数据也不相同,有效保证了数据加密的随机性,增加了数据被分析和破解的难度。
可选地,上述的位逻辑运算参数可以通过算法((1<<(p-s*2))-1)<<s获得;其中,“<<”表示左移操作。
下面,以输入的原始数据为1字节char类型字符串数组{‘f’,‘l’}为例,对本发明实施例提供的数据加密方法进行示例性说明。电子设备获取到原始数据后,随机出一个0~2147483647之间的随机数salt=38(对应字符‘&’),对该随机数模4然后+1,得到位运算参数s=3,通过算法((1<<(8-s*2))-1)<<s得到位逻辑运算参数mask=24。电子设备遍历原始数据的每一个字符,针对字符‘f’,其二进制表示为“01100110”,则按位取反后得到的取反结果为“10011001”,将取反结果向右移p-s=8-3=5位,得到取反结果对应的高位数据“00000100”;将取反结果向左移p-s=5位,得到取反结果对应的低位数据“00100000”;将取反结果“10011001”与位逻辑运算参数mask=“00011000”进行与操作,得到取反结果对应的中位数据“00011000”;将高位数据“00000100”、低位数据“00100000”和中位数据“00011000”进行或操作,得到字符‘f’对应的加密数据“00111100”,即字符‘<’;同理,针对字符‘l’,其二进制表示为“01101100”,按照上述加密过程可得到对应的加密数据“01110100”,即字符‘t’。在字符串数组内所有数据遍历完后,将原始数据中各字符对应的加密数据以及随机数放到一个新数组,实现加密数据与随机数的关联。例如,可以申请一个新数组,新数组大小为原字符串数组大小+4,将随机数salt放在新数组前4位,各字符对应的加密数据放在后面,则该新数组(存放加密数据的数组)可表示为{‘&’,‘<’,‘t’}。
需要说明的是,在实际的代码实现中,为了方便计算,可能涉及数据类型以及大小的转换。如图2所示,以1字节char类型字符串数组为例,输入一串字符串,随机出一个0~2147483647之间的随机数salt,对此随机数模4然后+1,得到在1~4之间的数字s(位运算参数);定义一个4字节大小的位逻辑运算参数mask,通过算法((1<<(8-s*2))-1)<<s,得到mask的值。遍历需要加密的字符串数组,取出数组中的每一个数据,即每次取一个char类型的单个数据,首先对这个单个数据强制转换为4字节的int值src;然后对src取反,并与0x000000ff进行与操作。将src与mask进行与操作,得到int值mid;将src向右移(8-s)得到int值high;将src向左移(8-s),然后再与0x000000ff进行与操作,得到int值low。将low、mid、high进行或操作,得到4字节int值n,将n强制转换为1字节(byte)赋予原字符串数组。在字符串数组内的所有数据遍历完之后,申请新数组,数组大小为原字符串数组大小+4,将salt放在数组前4位,原其他数据放在后面,这样即得到一串加密后的数据。
请参照图3,为本发明实施例提供的数据解密方法的一种流程示意图。需要说明的是,本发明实施例的数据解密方法并不以图3以及以下的具体顺序为限制,应当理解,在其他实施例中,本发明实施例的数据解密方法其中部分步骤的顺序可以根据实际需要相互交换,或者其中的部分步骤也可以省略或删除。该数据解密方法的执行主体与上述数据加密方法的执行主体可以相同,也可以不同。下面将对图3所示的具体流程进行详细阐述。
步骤S201,获取加密数据以及加密数据关联的随机数;随机数是在原始数据的加密过程中随机生成。
在本实施例中,由于在对原始数据加密时,会对原始数据对应的加密数据和加密过程中生成的随机数进行关联,故在进行数据解密时,可以获取到加密数据关联的随机数。
例如,数据加密时是将加密数据以及随机数放到一个新数组,实现加密数据与随机数的关联;则数据解密时通过读取数组中设定位置(比如数组的前4位)的数据,即可获得加密数据关联的随机数。
步骤S202,根据随机数确定位运算参数。
在本实施例中,数据解密过程中根据随机数确定位运算参数的方式可与数据加密过程一致。例如,可以通过计算随机数除以预设值的余数,并将余数加一,得到位运算参数。
其中,该预设值可以根据加密数据的数据类型对应的二进制位数设置。例如,假设加密数据的数据类型对应的二进制位数为m,则可设置预设值为m/2,将随机数和该预设值进行取模运算,然后将得到的余数加1,即可得到在1~m/2之间的数字(即位运算参数)。
步骤S203,根据位运算参数对加密数据进行位运算操作,得到位运算结果;其中,位运算结果的前s位和后s位相对于加密数据发生交换,s表示位运算参数。
在本实施例中,该电子设备针对加密数据中的每个字符,根据位运算参数进行位运算操作,实现将该字符对应的前s位和后s位进行交换,从而得到每个字符对应的位运算结果。
步骤S204,对位运算结果进行按位取反操作,得到加密数据对应的原始数据。
在本实施例中,电子设备针对加密数据中每个字符对应的位运算结果后,对该位运算结果进行按位取反操作,最终得到加密数据对应的原始数据,实现数据的快速解密。
可见,本发明实施例提供的数据解密方法,通过获取加密数据以及加密数据关联的随机数;随机数是在原始数据的加密过程中随机生成;根据随机数确定位运算参数;根据位运算参数对加密数据进行位运算操作,得到位运算结果;其中,位运算结果的前s位和后s位相对于加密数据发生交换,s表示位运算参数;对位运算结果进行按位取反操作,得到加密数据对应的原始数据。如此,仅需少量的运算操作就可以完成数据的解密过程,有效提高了解密速度;同时,由于解密过程使用的位运算参数是根据加密过程中生成的随机数确定的,故能保持一定的随机性,增加了数据被分析和破解的难度。
可选地,上述步骤S203具体包括:将加密数据向右移m-s位,得到加密数据对应的高位数据;其中,m表示加密数据的数据类型对应的二进制位数;将加密数据向左移m-s位,得到加密数据对应的低位数据;将加密数据与位逻辑运算参数进行与操作,得到加密数据对应的中位数据;其中,位逻辑运算参数的前s位与后s位为0,其余位为1;将加密数据对应的高位数据、低位数据和中位数据进行或操作,得到位运算结果。
可选地,位逻辑运算参数可以通过算法((1<<(m-s*2))-1)<<s获得。
下面,以输入的加密数据为1字节char类型字符串数组{‘&’,‘<’,‘t’}为例,对本发明实施例提供的数据解密方法进行示例性说明。电子设备获取到需要解密的字符串数据后,取得数组前4位数据(即加密数据关联的随机数)为salt(字符‘&’,对应的十进制为“38”,二进制为“00100110”),对salt模4然后+1,得到位运算参数s=3,通过算法((1<<(8-s*2))-1)<<s得到位逻辑运算参数mask=24。电子设备从字符串数组的第五位开始遍历,取得字符串数组中对应索引值;针对获取的字符‘<’,其二进制表示为“00111100”,将“00111100”向右移m-s=8-3=5位,得到字符‘<’对应的高位数据“00000001”;将“00111100”向左移m-s=8-3=5位,得到字符‘<’对应的低位数据“10000000”;将“00111100”与位逻辑运算参数mask=“00011000”进行与操作,得到字符‘<’对应的中位数据“00011000”;将高位数据“00000001”、低位数据“10000000”和中位数据“00011000”进行或操作,得到字符‘<’对应的位运算结果“10011001”;然后对位运算结果“10011001”进行按位取反操作,得到字符‘<’对应的原始数据“01100110”,即字符‘f’;同理,针对字符‘t’,其二进制表示为“01110100”,按照上述解密过程可得到对应的原始数据为“01101100”,即字符‘l’。在字符串数组内所有数据遍历完后,即可得到最终解密后的字符串数组{‘f’,‘l’}。
需要说明的是,在实际的代码实现中,为了方便计算,可能涉及数据类型以及大小的转换。如图4所示,以1字节char类型字符串数组为例,输入需要解密的字符串数组,取得数组前4位数据为salt,对salt取模并加1,获得位运算参数s。设置位逻辑运算参数mask为一个4字节int型数据,根据算法((1<<(8-s*2))-1)<<s求得mask的值。从第五位遍历字符串数组,取得字符串数组中对应索引值,强制转换为4字节int值src;对src和mask进行与操作,得到int值mid;将src向右移8-s位,得到int值high;将src向左移8-s位,然后和0x000000ff进行与操作,得到int值low。将low、mid、high进行或操作,得到int值n。对n进行取反操作,然后和0x000000ff进行与操作,最后将n强转为1字节(byte)赋值到原数组对应索引的值中,这样就得到最终解密后的字符串数组。
为了执行上述实施例及各个可能的方式中的相应步骤,下面分别给出与上述数据加密方法对应的数据加密装置,以及上述数据解密方法对应的数据解密装置的实现方式。请参照图5,为本发明实施例提供的数据加密装置500的一种功能模块图。需要说明的是,本实施例所提供的数据加密装置500,其基本原理及产生的技术效果和上述数据加密方法对应的实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据加密装置500包括第一参数确定模块510和第一处理模块520。
第一参数确定模块510,用于根据生成的随机数确定位运算参数。
可以理解,该第一参数确定模块510可以执行上述步骤S101。
第一处理模块520,用于将原始数据进行按位取反操作,得到取反结果;根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;其中,加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。
可以理解,该第一处理模块520可以执行上述步骤S102~S103。
可选地,该第一参数确定模块510具体用于计算生成的随机数除以预设值的余数,并将余数加一,得到位运算参数;其中,预设值根据原始数据的数据类型对应的二进制位数设置。
可选地,该第一处理模块520具体用于将取反结果向右移p-s位,得到取反结果对应的高位数据;其中,p表示原始数据的数据类型对应的二进制位数;将取反结果向左移p-s位,得到取反结果对应的低位数据;将取反结果与位逻辑运算参数进行与操作,得到取反结果对应的中位数据;其中,位逻辑运算参数的前s位与后s位为0,其余位为1;将取反结果对应的高位数据、低位数据和中位数据进行或操作,得到原始数据对应的加密数据。
可选地,该位逻辑运算参数通过算法((1<<(p-s*2))-1)<<s获得。
可见,本发明实施例提供的数据加密装置,包括第一参数确定模块和第一处理模块,第一参数确定模块根据生成的随机数确定位运算参数;第一处理模块将原始数据进行按位取反操作,得到取反结果;根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;其中,加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。如此,仅需少量的运算操作就可以完成数据的加密过程,有效提高了加密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
请参照图6,为本发明实施例提供的数据解密装置600的一种功能模块图。需要说明的是,本实施例所提供的数据解密装置600,其基本原理及产生的技术效果和上述数据解密方法对应的实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。该数据解密装置600包括数据获取模块610、第二参数确定模块620和第二处理模块630。
数据获取模块610,用于获取加密数据以及加密数据关联的随机数;随机数是在原始数据的加密过程中随机生成。
可以理解,该数据获取模块610可以执行上述步骤S201。
第二参数确定模块620,用于根据随机数确定位运算参数。
可以理解,该第二参数确定模块620可以执行上述步骤S202。
第二处理模块630,用于根据位运算参数对加密数据进行位运算操作,得到位运算结果;其中,位运算结果的前s位和后s位相对于加密数据发生交换,s表示位运算参数;对位运算结果进行按位取反操作,得到加密数据对应的原始数据。
可以理解,该第二处理模块630可以执行上述步骤S203。
可选地,该第二参数确定模块620具体用于计算随机数除以预设值的余数,并将余数加一,得到位运算参数;其中,预设值根据加密数据的数据类型对应的二进制位数设置。
可选地,该第二处理模块630具体用于将加密数据向右移m-s位,得到加密数据对应的高位数据;其中,m表示加密数据的数据类型对应的二进制位数;将加密数据向左移m-s位,得到加密数据对应的低位数据;将加密数据与位逻辑运算参数进行与操作,得到加密数据对应的中位数据;其中,位逻辑运算参数的前s位与后s位为0,其余位为1;将加密数据对应的高位数据、低位数据和中位数据进行或操作,得到位运算结果。
可选地,该位逻辑运算参数通过算法((1<<(m-s*2))-1)<<s获得。
可见,本发明实施例提供的数据解密装置,包括数据获取模块、第二参数确定模块和第二处理模块,该数据获取模块获取加密数据以及加密数据关联的随机数;随机数是在原始数据的加密过程中随机生成;该第二参数确定模块根据随机数确定位运算参数;该第二处理模块根据位运算参数对加密数据进行位运算操作,得到位运算结果;其中,位运算结果的前s位和后s位相对于加密数据发生交换,s表示位运算参数;对位运算结果进行按位取反操作,得到加密数据对应的原始数据。如此,仅需少量的运算操作就可以完成数据的解密过程,有效提高了解密速度;同时,由于解密过程使用的位运算参数是根据加密过程中生成的随机数确定的,故能保持一定的随机性,增加了数据被分析和破解的难度。
请参照图7,为本发明实施例提供的电子设备700的一种方框示意图。该电子设备700包括存储器710、处理器720及通信模块730。存储器710、处理器720以及通信模块730各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
其中,存储器710用于存储程序或者数据。存储器710可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。
处理器720用于读/写存储器710中存储的数据或程序,并执行相应地功能。例如,当存储器710中存储的计算机程序被处理器720执行时,可以实现上述各实施例所揭示的数据加密方法或数据解密方法。
通信模块730用于通过网络建立电子设备700与其它通信终端之间的通信连接,并用于通过网络收发数据。
应当理解的是,图7所示的结构仅为电子设备700的结构示意图,电子设备700还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。图7中所示的各组件可以采用硬件、软件或其组合实现。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器720执行时实现上述各实施例所揭示的数据加密方法或数据解密方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据加密方法,其特征在于,所述方法包括:
根据生成的随机数确定位运算参数;
将原始数据进行按位取反操作,得到取反结果;
根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
2.根据权利要求1所述的数据加密方法,其特征在于,所述根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,包括:
将所述取反结果向右移p-s位,得到所述取反结果对应的高位数据;其中,p表示所述原始数据的数据类型对应的二进制位数;
将所述取反结果向左移p-s位,得到所述取反结果对应的低位数据;
将所述取反结果与位逻辑运算参数进行与操作,得到所述取反结果对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
将所述取反结果对应的高位数据、低位数据和中位数据进行或操作,得到所述原始数据对应的加密数据。
3.根据权利要求2所述的数据加密方法,其特征在于,所述位逻辑运算参数通过算法((1<<(p-s*2))-1)<<s获得。
4.根据权利要求1-3任一项所述的数据加密方法,其特征在于,所述根据生成的随机数确定位运算参数,包括:
计算生成的随机数除以预设值的余数,并将所述余数加一,得到位运算参数;其中,所述预设值根据所述原始数据的数据类型对应的二进制位数设置。
5.一种数据解密方法,其特征在于,所述方法包括:
获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
根据所述随机数确定位运算参数;
根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;
对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
6.根据权利要求5所述的数据解密方法,其特征在于,所述根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果,包括:
将所述加密数据向右移m-s位,得到所述加密数据对应的高位数据;其中,m表示所述加密数据的数据类型对应的二进制位数;
将所述加密数据向左移m-s位,得到所述加密数据对应的低位数据;
将所述加密数据与位逻辑运算参数进行与操作,得到所述加密数据对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
将所述加密数据对应的高位数据、低位数据和中位数据进行或操作,得到位运算结果。
7.一种数据加密装置,其特征在于,所述装置包括:
第一参数确定模块,用于根据生成的随机数确定位运算参数;
第一处理模块,用于将原始数据进行按位取反操作,得到取反结果;根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
8.一种数据解密装置,其特征在于,所述装置包括:
数据获取模块,用于获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
第二参数确定模块,用于根据所述随机数确定位运算参数;
第二处理模块,用于根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-4中任一项所述的数据加密方法,或者实现如权利要求5-6中任一项所述的数据解密方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的数据加密方法,或者实现如权利要求5-6中任一项所述的数据解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596462.5A CN116015633A (zh) | 2022-12-12 | 2022-12-12 | 数据加密方法、数据解密方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211596462.5A CN116015633A (zh) | 2022-12-12 | 2022-12-12 | 数据加密方法、数据解密方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116015633A true CN116015633A (zh) | 2023-04-25 |
Family
ID=86027406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211596462.5A Pending CN116015633A (zh) | 2022-12-12 | 2022-12-12 | 数据加密方法、数据解密方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116015633A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827805A (zh) * | 2024-03-06 | 2024-04-05 | 四川中城智建系统集成科技有限公司 | 一种数字孪生平台的数据处理运维系统 |
-
2022
- 2022-12-12 CN CN202211596462.5A patent/CN116015633A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117827805A (zh) * | 2024-03-06 | 2024-04-05 | 四川中城智建系统集成科技有限公司 | 一种数字孪生平台的数据处理运维系统 |
CN117827805B (zh) * | 2024-03-06 | 2024-05-24 | 四川中城智建系统集成科技有限公司 | 一种数字孪生平台的数据处理运维系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2619895C1 (ru) | Система и способы для шифрования данных | |
CA2906475C (en) | Method and apparatus for substitution scheme for anonymizing personally identifiable information | |
CN111314069B (zh) | 基于区块链的摇号系统、方法、电子设备及存储介质 | |
JP2020506597A (ja) | データ・マスキング | |
CN108259171B (zh) | Shader文件的保护方法及装置 | |
Alarood et al. | IES: Hyper-chaotic plain image encryption scheme using improved shuffled confusion-diffusion | |
CN102224704A (zh) | 内容解密处理装置、内容解密处理方法及集成电路 | |
US20220130282A1 (en) | Method, apparatus, and computer-readable medium for format preserving encryption of a numerical value | |
WO2018170963A1 (zh) | 一种文件的加密、解密方法和装置 | |
CN109547201A (zh) | 一种根密钥的加密方法、计算机可读存储介质及终端设备 | |
JP2021507615A (ja) | パスワード認証のための準同型暗号 | |
Xue et al. | Medical image protection algorithm based on deoxyribonucleic acid chain of dynamic length | |
WO2022042103A1 (zh) | 数据保护方法、装置、设备及介质 | |
CN116015633A (zh) | 数据加密方法、数据解密方法及相关装置 | |
CN110704875B (zh) | 客户敏感信息的处理方法、装置、系统、介质及电子设备 | |
CN114579637A (zh) | 一种电网业务系统区块链高效检索方法 | |
CN107391970B (zh) | Flash应用程序中的函数访问控制方法及装置 | |
CN112199730A (zh) | 一种终端上应用数据的处理方法、装置及电子设备 | |
US8144876B2 (en) | Validating encrypted archive keys with MAC value | |
CN107423631A (zh) | 一种数据库加解密方法和装置 | |
CN111104693A (zh) | 一种Android平台软件数据破解方法、终端设备及存储介质 | |
JP5208796B2 (ja) | 整数の暗号化及び復号化方法 | |
CN114900284A (zh) | 一种基于助记词生成sm2密钥的方法 | |
JP5208717B2 (ja) | 整数の暗号化及び復号化方法 | |
Rahouma | Reviewing and applying security services with non-english letter coding to secure software applications in light of software trade-offs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |