CN116132159A - 数据加密方法、装置、电子设备及存储介质 - Google Patents
数据加密方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116132159A CN116132159A CN202310086736.4A CN202310086736A CN116132159A CN 116132159 A CN116132159 A CN 116132159A CN 202310086736 A CN202310086736 A CN 202310086736A CN 116132159 A CN116132159 A CN 116132159A
- Authority
- CN
- China
- Prior art keywords
- length
- data
- byte array
- hash value
- encrypted data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000003860 storage Methods 0.000 title claims abstract description 28
- 238000004364 calculation method Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 52
- 230000008859 change Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 21
- 230000003247 decreasing effect Effects 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 8
- 238000005520 cutting process Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 24
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 238000012795 verification Methods 0.000 description 5
- 238000005336 cracking Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本公开实施例提供了数据加密方法、装置、电子设备以及存储介质,其中,数据加密方法包括:对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据,以此,提高了加密数据的安全性。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种数据加密方法、装置、电子设备及存储介质。
背景技术
随着电子技术的发展,数据安全的重要性越来越高。当数据在网络中传输的时候,存在被不具有数据读取权限的非法用户抓取的安全风险。为了提高数据安全性,往往需要利用密钥对数据进行加密处理,使得不具有密钥的非法用户即便抓取了加密后的数据,也无法从中获取信息。然而,通过密钥加密方式生成的加密数据存在被暴力破解的安全隐患。
发明内容
本申请实施例提供了一种数据加密方法、装置、电子设备及存储介质,以提高加密数据的安全性。
第一方面,本申请实施例提供了一种数据加密方法,包括:
对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
基于预设密钥和所述第一散列值,对所述待加密数据进行加密处理,得到初始加密数据;
将所述初始加密数据转换为对应的第一字节数组,将所述字节数组的长度确定为第一长度,以及,将所述第一散列值转换为对应的第二字节数组,将所述第二字节数组确定为干扰项,将所述第二字节数组的长度确定为第二长度;
根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
根据所述干扰位置序号,将所述干扰项插入所述第一字节数组,得到目标加密数据。
第二方面,本申请实施例提供了一种数据解密方法,包括:
将获取的目标加密数据转换为对应的第三字节数组,将所述第三字节数组的长度确定为第三长度;所述目标加密数据通过如第一方面所述的数据加密方法对目标数据加密得到;
对所述第三长度和预设的第二长度求差,得到第一长度;所述第一长度用于表征初始加密数据对应的第一字节数组的长度;所述第二长度用于表征所述第三字节数组中干扰项的长度;
根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
根据所述干扰位置序号、所述第二长度以及所述第三字节数组,确定所述第一散列值和所述初始加密数据;
根据预设密钥和所述第一散列值,对所述初始加密数据进行解密,得到所述目标数据。
第三方面,本申请实施例提供了一种数据加密装置,包括:
第一计算单元,用于对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
加密单元,用于基于预设密钥和所述第一散列值,对所述待加密数据进行加密处理,得到初始加密数据;
第一转换单元,用于将所述初始加密数据转换为对应的第一字节数组,将所述字节数组的长度确定为第一长度,以及,将所述第一散列值转换为对应的第二字节数组,将所述第二字节数组确定为干扰项,将所述第二字节数组的长度确定为第二长度;
第二计算单元,用于根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
插入单元,用于根据所述干扰位置序号,将所述干扰项插入所述第一字节数组,得到目标加密数据。
第四方面,本申请实施例提供了一种数据解密装置,包括:
第二转换单元,用于将获取的目标加密数据转换为对应的第三字节数组,将所述第三字节数组的长度确定为第三长度;所述目标加密数据通过如第一方面所述的数据加密方法对目标数据加密得到;
第三计算单元,用于对所述第三长度和预设的第二长度求差,得到第一长度;所述第一长度用于表征初始加密数据对应的第一字节数组的长度;所述第二长度用于表征所述第三字节数组中干扰项的长度;
第四计算单元,用于根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
确定单元,用于根据所述干扰位置序号、所述第二长度以及所述第三字节数组,确定所述第一散列值和所述初始加密数据;
解密单元,用于根据预设密钥和所述第一散列值,对所述初始加密数据进行解密,得到所述目标数据。
第五方面,本申请实施例提供了一种电子设备,包括:处理器;以及,被配置为存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行如第一方面所述的数据加密方法,或者,如第二方面所述的数据解密方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如第一方面所述的数据加密方法,或者,如第二方面所述的数据解密方法。
可以看出,在本申请实施例中,首先,对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;其次,基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;接着,将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;然后,根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;最后,根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据,以此,一方面,在通过同一个预设密钥对不同的待加密数据进行加密处理时,由于该加密过程还利用了根据待加密数据进行散列值计算得到的第一散列值,该第一散列值随着待加密数据改变而改变,故每次加密均采用相同的预设密钥和不同的第一散列值,使得加密得到的初始加密数据破解难度更高,提高了加密数据的安全性;另一方面,初始加密数据对应的第一字节数组的长度为第一长度,第一散列值对应的第二字节数组的长度为第二长度,由于第一散列值为预设长度,故第二长度的数值固定不变,在待加密数据不同的情况下,对待加密数据加密得到的初始加密数据对应的第一长度极有可能不同,进而,基于数值不同的第一长度和数值固定的第二长度所确定的干扰位置序号会随着待加密数据改变而改变,将第二字节数组作为干扰项,基于干扰位置序号将干扰项插入第一字节数组,得到目标加密数据,该干扰项被插入第一字节数组中的位置是非固定的,故非法人员难以从目标加密数据中准确找出干扰项,在目标加密数据既包括干扰项各个字符又包括待加密数据对应的第一字节数组中各个字符的情况下,目标加密数据的破解难度增大了,提高了加密数据的安全性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图;
图1为本申请实施例提供的一种数据加密方法的处理流程图;
图2为本申请实施例提供的另一种数据加密方法的处理流程图;
图3为本申请实施例提供的又一种数据加密方法的多端交互图;
图4为本申请实施例提供的一种数据解密方法的处理流程图;
图5为本申请实施例提供的另一种数据解密方法的处理流程图;
图6为本申请实施例提供的又一种数据解密方法的多端交互图;
图7为本申请实施例提供的一种数据加密装置示意图;
图8为本申请实施例提供的一种数据解密装置示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书的一部分实施例,而不是全部的实施例。基于本申请实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请的保护范围。
实际的数据加密场景中,包括对用户敏感数据或者关键数据的加密处理时,可以包括简历数据或薪酬数据等数据的加密场景中,通过穷举法等方式可以非法破解仅通过密钥加密的数据对象,给加密数据的安全性带来了隐患,给用户带来了糟糕的体验。为了解决上述问题,本申请实施例提供了一种数据加密方法。
图1为本申请实施例提供的一种数据加密方法的处理流程图。图1的数据加密方法可由电子设备执行,该电子设备可以是终端设备,比如手机、笔记本电脑、智能交互设备等等;或者,该电子设备还可以是服务器,比如独立的物理服务器、服务器集群或者是能够进行云计算的云服务器。参照图1,本实施例提供的数据加密方法,具体包括步骤S102至步骤S110。
步骤S102,对获取的待加密数据进行散列值计算,得到预设长度的第一散列值。
待加密数据可以是任何一个存在数据加密需求的数据对象。
散列值算法,是一种从任何一种数据中创建小的数字“指纹”的方法。散列值算法把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该算法将数据打乱混合,重新创建一个叫做散列值(hash values)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。
本实施例中的散列值计算,可以是基于MD5散列值算法进行计算,也可以是基于其他散列值算法进行计算。
MD5散列值为信息摘要算法,一种被广泛使用的密码散列函数,可以产生出一个散列值,用于确保信息传输完整一致。
MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
示例性地,预设长度可以是32位,例如,将128位的第一散列值转换为16进制的形式,使得转换后的第一散列值的长度为32位。
第一散列值可以是一个字符串,该字符串的长度可以反映字符串中字符的个数,例如,预设长度为32,32位的第一散列值可以是具有32个字符的字符串。
第一散列值可以是按照预设散列值算法对待加密数据进行散列值计算得到的对应该待加密数据的散列值。
对于任意两个不同的待加密数据,该两个待加密数据分别对应的散列值不同。
在数据加密场景中,散列值可以用于防篡改校验。具体地,在数据加密之前,可以根据待加密数据计算得到对应的第一散列值,在数据解密之后,可以根据解密得到的明文数据计算得到对应的第二散列值,若第一散列值与第二散列值相同,说明待加密数据与明文数据完全一致,并未被篡改过;若第一散列值与第二散列值不同,说明待加密数据与明文数据不完全一致,加密数据极有可能在数据传输过程中被破解并篡改。
需要说明的是,本说明书中出现的“第一”、“第二”、“第三”等序号词,仅仅是为了便于区分多个相似的特征,不具有实际含义,下文不再赘述。
具体实施时,待加密数据可以是图像数据或文件数据。
待加密数据可以是一个存在加密需求的图像数据,也可以是一个存在加密需求的文件数据,还可以是其他类型的数据对象。
步骤S104,基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据。
密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。
面对不同的待加密文件,通过同一预设密钥进行加密,其加密方式是固定的。但对于不同的待加密文件,每个待加密文件对应的第一散列值各不相同。进而,每次加密均采用相同的预设密钥和不同的第一散列值,可以使得加密得到的初始加密数据破解难度更高,提高了加密数据的安全性。
又散列值可以用于防篡改校验,故可以重复利用第一散列值,使其能够同时用于防篡改校验和增大加密破解难度。
在一种具体的实现方式中,基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据,包括:根据预设密钥,对待加密数据进行第一加密处理,得到第一加密数据;将第一散列值作为加密参数,按照加密参数,对第一加密数据进行第二加密处理,得到初始加密数据。
根据预设密钥,对待加密数据进行第一加密处理,得到第一加密数据,例如,待加密数据为字符串“123”,利用密钥对其加密,得到字符串“ABC”,将该字符串“ABC”确定为初始加密数据。
将第一散列值作为加密参数,按照加密参数,对第一加密数据进行第二加密处理,得到初始加密数据,例如,待加密数据为“123”,在仅利用预设密钥对其加密会得到第一加密数据“ABC”的情况下,将第一散列值作为加密参数,结合加密参数与预设密钥共同对“123”加密,得到初始加密数据“CDE”。
此处的加密参数指的是密钥之外的加密参数。
在一种具体的实现方式中,将第一散列值作为加密参数,按照加密参数,对第一加密数据进行第二加密处理,得到初始加密数据,包括:根据第一散列值确定对应的增减值;增减值用于表征字符序号待增加或待减少的数值;字符序号用于表征字符在预设字符排列顺序中的位置;按照增减值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据;或者,对第一散列值进行复制处理和拼接处理,得到目标散列值;目标散列值中的字符数量与第一加密数据中的字符数量相同;根据目标散列值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据。
初始加密数据可以通过如下两种方式中的一者得到:
在一种方式中,可以根据第一散列值确定对应的增减值;按照增减值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据。具体实施时,可以基于预设转换算法,将预设长度的第一散列值转换为预设数值范围内的一个数值,将该数值确定为第一散列值对应的增减值。
字符序号用于表征字符在预设字符排列顺序中的位置,例如,字符A-Z按照预设字符排列顺序依次排列,A在预设字符排列顺序中的最前方,其字符序号为“1”;B位于A之后,其字符序号为“2”……Z在预设字符排列顺序中的尾部,其字符序号为“26”。
按照增减值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据,可以是基于增减值和待变更的字符,在预设字符排列顺序中确定字符序号与该待变更的字符的字符序号之差为该增减值的替换字符,通过该替换字符对待变更的字符进行替换处理。
示例性地,第一散列值可以是一个32位的字符串,基于预设转换算法,可以将该32位的第一散列值转换为预设数值范围[-9,9]之间的一个自然数:3,进而,可以将“3”确定为第一散列值对应的增减值,用于表征字符序号待增加的数值为3。第一加密数据为“ABC”,且A-Z的字符序号依次为1-26,A对应于字符序号“1”,B对应于字符序号“2”,C对应于字符序号“3”。由于增减值为“3”,则基于该增减值对A进行变更处理,使得字符序号从“1”变更为“4”,故按照增减值“3”对A进行变更处理之后的字符为字符序号“4”对应的D。同理,按照增减值“3”对B进行变更处理之后的字符为字符序号“5”对应的E。同理,按照增减值“3”对C进行变更处理之后的字符为字符序号“6”对应的F。
在另一种方式中,可以对第一散列值进行复制处理和拼接处理,得到目标散列值;根据目标散列值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据。
具体实施时,对第一散列值进行N次复制处理,得到N个第一散列值,对N个第一散列值进行拼接处理,得到目标散列值。N可以是大于等于1的自然数。
考虑到待加密数据中的字符数量可能无法被第一散列值中的字符数量整除,还可以对第一散列值进行N次复制处理,得到N个第一散列值,对N个第一散列值进行拼接处理,再进行裁剪处理,得到目标散列值,该目标散列值中的字符数量与待加密数据中的字符数量相同。
根据目标散列值,对待加密数据中的每个字符进行变更处理,得到初始加密数据,可以是根据待加密数据中每个字符的字符位置,在目标散列值中确定该字符的关联字符,根据关联字符,对该字符进行变更处理。
根据关联字符,对该字符进行变更处理,可以是基于该关联字符对应的增减值,对该字符进行变更处理。
步骤S106,将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度。
初始加密数据和第一散列值均可以是一个字符串,该字符串可以包括多个字符,每个字符可以对应于4个字节。
字节(Byte)是通过网络传输信息(或在硬盘或内存中存储信息)的单位。
数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、字节数组、指针数组、结构数组等各种类别。
将初始加密数据转换为对应的第一字节数组,可以是按照预设编码方式对初始加密数据进行编码处理,得到初始加密数据对应的第一字节数组。
例如,每个字符对应于4个字节,将包括100个字符的字符串转换为字节数组后,其长度的数值为400。
又例如,初始加密数据为字符串“123”,该字符串包括字符“1”、“2”“3”,每个字符对应于4个字节,则将该字符串转换为第一字节数组后,该第一字节数组的长度的数值为12。
初始加密数据基于待加密数据生成,第一字节数组由初始加密数据转换得到,故对于不同的待加密数据,其对应的第一字节数组不同。又将字节数组的长度确定为第一长度,则对于不同的待加密数据,其对应的第一字节数组的长度可以不同。
需要注意的是,本实施例中,第一长度仅和待加密数据相关,与第一散列值无关。尽管在步骤S104中,“基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据”,但长度均为预设长度且内容不同的各个第一散列值不会改变初始加密数据的长度,进而,由初始加密数据确定的第一长度不会受第一散列值的变化影响。
第一散列值转换为对应的第二字节数组,可以是按照预设编码方式对第一散列值进行编码处理,得到第一散列值对应的第二字节数组。
将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度。
该干扰项可以是用于插入第一字节数组以干扰加密数据的非法破解的干扰数据。
第一散列值基于待加密数据生成,但第一散列值的长度为预设长度,第二字节数组由第一散列值转换得到,故对于不同的待加密数据,其对应的第二字节数组的内容可能不同,但长度完全相同。第二长度与预设长度之间存在对应关系,对于不同的待加密数据,第二长度为固定数值。
步骤S108,根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置。
第二长度可以为固定数值,由预设长度确定。第一长度可以随着待加密数据变化而变化。面对不同的待加密数据,第一长度不同,第二长度相同,则根据第一长度和第二长度,计算得到干扰位置序号,该干扰位置序号的数值不是固定值,受第一长度影响。
干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置,则在多个不同的待加密数据中,每个待加密数据的加密流程中该待加密数据对应的第一字节数组中待插入干扰项的字符位置可能是不同的。
干扰位置序号,即第一散列值被插入到初始加密文件中的位置是不可预判并具有随机性的,因为它不需要借助其它参数,仅和待加密数据自身相关,从而大大降低了干扰位置序号受外界因素影响的可能,更隐蔽和安全。
对于不具有数据读取权限且不了解加密机制的非法用户,不容易想到目标加密数据中还包括干扰项,使得非法用户破解目标加密数据时,由于目标加密数据包括与待加密文件无关的冗余项,导致破解出来极有可能是一堆乱码,难以破解成功,增大了目标加密数据的破解难度。
在一种具体的实现方式中,根据第一长度和第二长度,计算得到干扰位置序号,包括:根据第一长度和第二长度,进行取模运算处理,得到干扰位置序号。
取模运算可以是求两个数相除的余数。
根据第一长度和第二长度,进行取模运算处理,得到干扰位置序号,可以是将第一长度除以第二长度并求余数,将计算得到的余数确定为干扰位置序号的数值。该干扰位置序号的数值小于第一长度的数值且小于第二长度的数值。
在一种具体的实现方式中,根据第一长度和第二长度,计算得到干扰位置序号,包括:根据第一长度、第二长度以及预设计算公式,计算得到初始序号;若初始序号的数值小于等于第一长度,则将初始序号确定为干扰位置序号;若初始序号的数值大于第一长度,则根据初始序号的数值和第一长度,进行取模运算处理,得到干扰位置序号。
预设计算公式可以是自变量仅包括第一长度和第二长度的任意一个预先配置的计算公式。
根据第一长度、第二长度以及预设计算公式,计算得到初始序号,可以是对第一长度和第二长度进行取模运算、除法运算、减法运算、加法运算中的一者或多者,等等。
初始序号的数值可以大于、小于或等于第一长度,初始序号的数值可以大于、小于或等于第二长度。初始序号的数值可以是任意一个自然数,与第一长度的大小比较不存在固定结果,且与第二长度的大小比较不存在固定结果。
若初始序号的数值小于等于第一长度,则将初始序号确定为干扰位置序号。
例如,第一长度为200,第二长度为10,初始序号为150,则可以将初始序号150确定为干扰位置序号。
若初始序号的数值大于第一长度,则根据初始序号的数值和第一长度,进行取模运算处理,得到干扰位置序号。
例如,第一长度为200,第二长度为10,初始序号为235,则可以将235除以200,求得余数为35,将35确定为干扰位置序号。
步骤S110,根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据。
第一字节数组可以包括多个元素,每个元素对应于一个字节。
根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据,可以是根据干扰位置序号,在第一字节数组中确定干扰项的插入位置;按照该插入位置,将干扰项插入第一字节数组,得到目标字节数组,将目标字节数组转换为对应的字符串,将该字符串确定为目标加密数据。
在如图1所示的实施例中首先,对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;其次,基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;接着,将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;然后,根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;最后,根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据,以此,一方面,在通过同一个预设密钥对不同的待加密数据进行加密处理时,由于该加密过程还利用了根据待加密数据进行散列值计算得到的第一散列值,该第一散列值随着待加密数据改变而改变,故每次加密均采用相同的预设密钥和不同的第一散列值,使得加密得到的初始加密数据破解难度更高,提高了加密数据的安全性;另一方面,初始加密数据对应的第一字节数组的长度为第一长度,第一散列值对应的第二字节数组的长度为第二长度,由于第一散列值为预设长度,故第二长度的数值固定不变,在待加密数据不同的情况下,对待加密数据加密得到的初始加密数据对应的第一长度极有可能不同,进而,基于数值不同的第一长度和数值固定的第二长度所确定的干扰位置序号会随着待加密数据改变而改变,将第二字节数组作为干扰项,基于干扰位置序号将干扰项插入第一字节数组,得到目标加密数据,该干扰项被插入第一字节数组中的位置是非固定的,故非法人员难以从目标加密数据中准确找出干扰项,在目标加密数据既包括干扰项各个字符又包括待加密数据对应的第一字节数组中各个字符的情况下,目标加密数据的破解难度增大了,提高了加密数据的安全性。
出于与前述的方法实施例相同的技术构思,本申请实施例还提供了另一种数据加密方法的实施例。图2为本申请实施例提供的另一种数据加密方法的处理流程图。参见图2,数据加密方法的处理流程具体包括步骤S202至步骤S212。
步骤S202,选择待加密数据A。
步骤S204,通过MD5计算A的散列值B。
具体可参照图1实施例中的步骤S102的对应说明部分。
步骤S206,将B作为参数和预设密钥一起对A加密,得到密文C。
具体可参照图1实施例中的步骤S104的对应说明部分。密文C相当于图1实施例中的“初始加密数据”。
步骤S208,将C转换为字节数组并计算出长度C’,B转换为字节数组并计算出长度B’。
具体可参照图1实施例中的步骤S106的对应说明部分。
步骤S210,根据C’和B’计算得到结果D。
具体可参照图1实施例中的步骤S108的对应说明部分。结果D相当于图1实施例中的“干扰位置序号”。
步骤S212,将B的字节数组插入到C的字节数组中D的位置,得到密文数据E。
具体可参照图1实施例中的步骤S110的对应说明部分。密文数据E相当于图1实施例中的“目标密文数据”。
由于技术构思相同,本实施例中描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。
出于与前述的方法实施例相同的技术构思,本申请实施例还提供了又一种数据加密方法的实施例。图3为本申请实施例提供的又一种数据加密方法的多端交互图。参见图3,数据加密方法的处理流程具体包括步骤S302至步骤S314。
步骤S302,前端上传文件或图像A至服务端。
步骤S304,服务端通过MD5计算A的散列值B。
步骤S306,服务端将B作为参数和预设密钥一起对A加密得到C。
步骤S308,服务端通过设定的组合规则,将B拼接到C的文件名中。
步骤S310,服务端将C的字节数组长度和散列值长度进行取模运算得到D。
步骤S312,服务端将B的字节数组插入到C的字节数组中D的位置,得到密文数据E。
步骤S314,服务端保存E至数据源。
由于技术构思相同,本实施例中描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。
出于与前述的方法实施例相同的技术构思,本申请实施例还提供了一种数据解密方法的实施例。图4为本申请实施例提供的一种数据解密方法的处理流程图。参见图4,数据解密方法的处理流程具体包括步骤S402至步骤S410。
步骤S402,将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过数据加密方法对目标数据加密得到。
步骤S402执行之前,数据解密方法还可以包括:从预设的存储介质中获取目标加密数据。预设的存储介质可以是数据源,数据库,内存指定区域,等等。
该数据加密方法可以是本说明书中前述的各个数据加密方法实施例所提供的数据加密方法中的一者。
步骤S404,对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度。
步骤S406,根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置。
步骤S408,根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据。
在一种具体的实现方式中,根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据,包括:根据干扰位置序号和第二长度,确定干扰项的首字符在第三字节数组中的第一位置序号和干扰项的尾字符在第三字节数组中的第二位置序号;根据第一位置序号和第二位置序号,对第三字节数组进行裁剪处理和拼接处理,得到第一字节数组和干扰项;将干扰项转换得到的字符串确定为第一散列值,将第一字节数组转换得到的字符串确定为初始加密数据。
根据第一位置序号和第二位置序号,对第三字节数组进行裁剪处理和拼接处理,得到第一字节数组和干扰项,可以是,根据第一位置序号和第二位置序号,对第三字节数组进行裁剪处理,得到依次排列的第一子数组、第二子数组以及第三子数组;将第二子数组确定为干扰项,以及,对第一子数组和第三子数组进行拼接处理,得到第一字节数组。
对第一子数组和第三子数组进行拼接处理后,第一子数组的最后一个元素与第三子数组的首个元素相邻。
步骤S410,根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。
在一种具体的实现方式中,根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据之后,数据解密方法还包括:根据目标数据进行散列值计算,得到第二散列值;根据第一散列值与第二散列值的字符串比较结果,确定目标数据是否被篡改。
通过对第一散列值与第二散列值进行字符串比较,可以实现目标数据的防篡改校验。若第一散列值与第二散列值的字符串比较结果用于表征第一散列值与第二散列值相等,则可以确定目标数据未被篡改;若第一散列值与第二散列值的字符串比较结果用于表征第一散列值与第二散列值不相等,则可以确定目标数据被篡改过。
本实施例提供的数据解密方法中,第一散列值可以既可以用于防篡改校验,又可以用于增大加密数据的破解难度。
在如图4所示的数据解密方法实施例中,首先,将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过如第一方面的数据加密方法对目标数据加密得到;其次,对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度;接着,根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;然后,根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据;最后,根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。以此,一方面,对于非法用户,第二长度的数值是未知的,若仅基于目标密文数据,难以求出第一长度的具体数值,在此基础上,该非法用户也无法在包括干扰项的目标加密数据中准确定位干扰项的位置,暴力破解包括干扰项的目标加密数据很可能只能得到无意义的乱码,故目标加密数据的安全性明显提升;另一方面,目标加密数据既包括第一散列值对应的干扰项,又包括初始加密数据对应的第一字节数组,但非法用户难以将二者分离,进而非法用户无法得到第一散列值,使得初始加密数据的解密难度增加,提高了目标加密数据的安全性。
由于技术构思相同,本实施例中描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。
出于与前述的方法实施例相同的技术构思,本申请实施例还提供了另一种数据解密方法的实施例。图5为本申请实施例提供的另一种数据解密方法的处理流程图。参见图5,数据解密方法的处理流程具体包括步骤S502至步骤S514。
步骤S502,获取密文数据E。
步骤S504,将E转换为字节数组后计算出长度E’,用E’减去散列值长度B’得到密文真实长度C’。
步骤S506,将C’和B’进行取模运算得到结果D。
步骤S508,在E的字节数组中从D位置开始向后截取B’长度,得到散列值B,同时得到密文C。
S510,将B作为参数和预设密钥一起对C进行解码,得到明文数据A。
步骤S512,对A进行MD5计算,得到另一个散列值G。
步骤S514,对比G和B。
若G和B二者一致,则说明A未被篡改过。若G和B不一致,则说明A被篡改过。
由于技术构思相同,本实施例中描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。
出于与前述的方法实施例相同的技术构思,本申请实施例还提供了另一种数据解密方法的实施例。图6为本申请实施例提供的又一种数据解密方法的多端交互图。参见图6,数据解密方法的处理流程具体包括步骤S602至步骤S622。
步骤S602,前端向服务端请求明文数据A。
步骤S604,服务端向数据源查询明文数据A。
步骤S606,数据源向服务端返回A的密文数据E。
步骤S608,服务端将E转换为字节数组后计算出长度E’,用E’减去散列值长度B’得到密文真实长度C’。
步骤S610,服务端根据B’和C’计算得到结果D。
步骤S612,服务端在E的字节数组中从D位置开始向后截取B’长度,得到散列值B,同时得到密文C。
步骤S614,服务端将B作为参数和预设密钥一起对C进行解密,得到明文数据A。
步骤S616,服务端对A进行MD5计算,得到另一个散列值G。
步骤S618,服务端判断G和B是否相等。
若是,则执行步骤S620;若否,则执行步骤S622。
步骤S620,服务端返回结果A至前端。
步骤S622,服务端返回错误信息至前端。
由于技术构思相同,本实施例中描述得比较简单,相关的部分请参见上述提供的方法实施例的对应说明即可。
在上述的实施例中,提供了一种数据加密方法,与之相对应的,基于相同的技术构思,本申请实施例还提供了一种数据加密装置,下面结合附图进行说明。
图7为本申请实施例提供的一种数据加密装置示意图。
本实施例提供一种数据加密装置,包括:
第一计算单元702,用于对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
加密单元704,用于基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;
第一转换单元706,用于将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;
第二计算单元708,用于根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
插入单元710,用于根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据。
可选地,加密单元704,包括:
第一加密子单元,用于根据预设密钥,对待加密数据进行第一加密处理,得到第一加密数据;
第二加密子单元,用于将第一散列值作为加密参数,按照加密参数,对第一加密数据进行第二加密处理,得到初始加密数据。
可选地,第二加密子单元,具体用于:
根据第一散列值确定对应的增减值;增减值用于表征字符序号待增加或待减少的数值;字符序号用于表征字符在预设字符排列顺序中的位置;按照增减值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据;
或者,
对第一散列值进行复制处理和拼接处理,得到目标散列值;目标散列值中的字符数量与第一加密数据中的字符数量相同;根据目标散列值,对第一加密数据中的每个字符进行变更处理,得到初始加密数据。
可选地,第二计算单元708,具体用于:
根据第一长度和第二长度,进行取模运算处理,得到干扰位置序号。
可选地,第二计算单元708,具体用于:
根据第一长度、第二长度以及预设计算公式,计算得到初始序号;
若初始序号的数值小于等于第一长度,则将初始序号确定为干扰位置序号;
若初始序号的数值大于第一长度,则根据初始序号的数值和第一长度,进行取模运算处理,得到干扰位置序号。
本申请实施例所提供的数据加密装置包括第一计算单元,用于对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;加密单元,用于基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;第一转换单元,用于将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;第二计算单元,用于根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;插入单元,用于根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据。一方面,在通过同一个预设密钥对不同的待加密数据进行加密处理时,由于该加密过程还利用了根据待加密数据进行散列值计算得到的第一散列值,该第一散列值随着待加密数据改变而改变,故每次加密均采用相同的预设密钥和不同的第一散列值,使得加密得到的初始加密数据破解难度更高,提高了加密数据的安全性;另一方面,初始加密数据对应的第一字节数组的长度为第一长度,第一散列值对应的第二字节数组的长度为第二长度,由于第一散列值为预设长度,故第二长度的数值固定不变,在待加密数据不同的情况下,对待加密数据加密得到的初始加密数据对应的第一长度极有可能不同,进而,基于数值不同的第一长度和数值固定的第二长度所确定的干扰位置序号会随着待加密数据改变而改变,将第二字节数组作为干扰项,基于干扰位置序号将干扰项插入第一字节数组,得到目标加密数据,该干扰项被插入第一字节数组中的位置是非固定的,故非法人员难以从目标加密数据中准确找出干扰项,在目标加密数据既包括干扰项各个字符又包括待加密数据对应的第一字节数组中各个字符的情况下,目标加密数据的破解难度增大了,提高了加密数据的安全性。
在上述的实施例中,提供了一种数据解密方法,与之相对应的,基于相同的技术构思,本申请实施例还提供了一种数据解密装置,下面结合附图进行说明。
图8为本申请实施例提供的一种数据解密装置示意图。
本实施例提供一种数据解密装置,包括:
第二转换单元802,用于将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过如第一方面的数据加密方法对目标数据加密得到;
第三计算单元804,用于对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度;
第四计算单元806,用于根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
确定单元808,用于根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据;
解密单元810,用于根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。
可选地,数据解密装置还包括:
第五计算单元,用于根据目标数据进行散列值计算,得到第二散列值;
比较单元,用于根据第一散列值与第二散列值的字符串比较结果,确定目标数据是否被篡改。
可选地,确定单元808,具体用于:
根据干扰位置序号和第二长度,确定干扰项的首字符在第三字节数组中的第一位置序号和干扰项的尾字符在第三字节数组中的第二位置序号;
根据第一位置序号和第二位置序号,对第三字节数组进行裁剪处理和拼接处理,得到第一字节数组和干扰项;
将干扰项转换得到的字符串确定为第一散列值,将第一字节数组转换得到的字符串确定为初始加密数据。
本申请实施例所提供的数据解密装置包括:第二转换单元,用于将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过数据加密方法对目标数据加密得到;第三计算单元,用于对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度;第四计算单元,用于根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;确定单元,用于根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据;解密单元,用于根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。一方面,对于非法用户,第二长度的数值是未知的,若仅基于目标密文数据,难以求出第一长度的具体数值,在此基础上,该非法用户也无法在包括干扰项的目标加密数据中准确定位干扰项的位置,暴力破解包括干扰项的目标加密数据很可能只能得到无意义的乱码,故目标加密数据的安全性明显提升;另一方面,目标加密数据既包括第一散列值对应的干扰项,又包括初始加密数据对应的第一字节数组,但非法用户难以将二者分离,进而非法用户无法得到第一散列值,使得初始加密数据的解密难度增加,提高了目标加密数据的安全性。
对应上述描述的一种数据加密方法,或者,对应上述描述的一种数据解密方法,基于相同的技术构思,本申请实施例还提供一种电子设备,该电子设备用于执行上述提供的数据加密方法,或者,上述提供的数据解密方法,图9为本申请实施例提供的一种电子设备的结构示意图。
如图9所示,电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括电子设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在电子设备上执行存储器902中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入/输出接口905,一个或一个以上键盘906等。
在一个具体的实施例中,电子设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对电子设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;
将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;
根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据。
在另一个具体的实施例中,电子设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对电子设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过数据加密方法对目标数据加密得到;
对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度;
根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据;
根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。
本说明书提供的一种计算机可读存储介质实施例如下:
对应上述描述的一种数据加密方法,基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质。
本实施例提供的计算机可读存储介质,用于存储计算机可执行指令,计算机可执行指令在被处理器执行时实现以下流程:
对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
基于预设密钥和第一散列值,对待加密数据进行加密处理,得到初始加密数据;
将初始加密数据转换为对应的第一字节数组,将字节数组的长度确定为第一长度,以及,将第一散列值转换为对应的第二字节数组,将第二字节数组确定为干扰项,将第二字节数组的长度确定为第二长度;
根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
根据干扰位置序号,将干扰项插入第一字节数组,得到目标加密数据。
需要说明的是,本说明书中关于计算机可读存储介质的实施例与本说明书中关于数据加密方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应方法的实施,重复之处不再赘述。
对应上述描述的一种数据解密方法,基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质。
本实施例提供的计算机可读存储介质,用于存储计算机可执行指令,计算机可执行指令在被处理器执行时实现以下流程:
将获取的目标加密数据转换为对应的第三字节数组,将第三字节数组的长度确定为第三长度;目标加密数据通过数据加密方法对目标数据加密得到;
对第三长度和预设的第二长度求差,得到第一长度;第一长度用于表征初始加密数据对应的第一字节数组的长度;第二长度用于表征第三字节数组中干扰项的长度;
根据第一长度和第二长度,计算得到干扰位置序号;干扰位置序号用于表征第一字节数组中待插入干扰项的字符位置;
根据干扰位置序号、第二长度以及第三字节数组,确定第一散列值和初始加密数据;
根据预设密钥和第一散列值,对初始加密数据进行解密,得到目标数据。
需要说明的是,本说明书中关于计算机可读存储介质的实施例与本说明书中关于数据解密方法的实施例基于同一发明构思,因此该实施例的具体实施可以参见前述对应方法的实施,重复之处不再赘述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域内的技术人员应明白,本申请实施例可提供为方法、系统或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、数据、组件、数据结构等等。也可以在分布式计算环境中实践本说明书的一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本文件的实施例而已,并不用于限制本文件。对于本领域技术人员来说,本文件可以有各种更改和变化。凡在本文件的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本文件的权利要求范围之内。
Claims (12)
1.一种数据加密方法,其特征在于,包括:
对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
基于预设密钥和所述第一散列值,对所述待加密数据进行加密处理,得到初始加密数据;
将所述初始加密数据转换为对应的第一字节数组,将所述字节数组的长度确定为第一长度,以及,将所述第一散列值转换为对应的第二字节数组,将所述第二字节数组确定为干扰项,将所述第二字节数组的长度确定为第二长度;
根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
根据所述干扰位置序号,将所述干扰项插入所述第一字节数组,得到目标加密数据。
2.根据权利要求1所述的方法,其特征在于,所述基于预设密钥和所述第一散列值,对所述待加密数据进行加密处理,得到初始加密数据,包括:
根据所述预设密钥,对所述待加密数据进行第一加密处理,得到第一加密数据;
将所述第一散列值作为加密参数,按照所述加密参数,对所述第一加密数据进行第二加密处理,得到所述初始加密数据。
3.根据权利要求2所述的方法,其特征在于,所述将所述第一散列值作为加密参数,按照所述加密参数,对所述第一加密数据进行第二加密处理,得到所述初始加密数据,包括:
根据所述第一散列值确定对应的增减值;所述增减值用于表征字符序号待增加或待减少的数值;所述字符序号用于表征字符在预设字符排列顺序中的位置;按照所述增减值,对所述第一加密数据中的每个字符进行变更处理,得到所述初始加密数据;
或者,
对所述第一散列值进行复制处理和拼接处理,得到目标散列值;所述目标散列值中的字符数量与所述第一加密数据中的字符数量相同;根据所述目标散列值,对所述第一加密数据中的每个字符进行变更处理,得到所述初始加密数据。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一长度和所述第二长度,计算得到干扰位置序号,包括:
根据所述第一长度和所述第二长度,进行取模运算处理,得到所述干扰位置序号。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一长度和所述第二长度,计算得到干扰位置序号,包括:
根据第一长度、第二长度以及预设计算公式,计算得到初始序号;
若所述初始序号的数值小于等于所述第一长度,则将所述初始序号确定为所述干扰位置序号;
若所述初始序号的数值大于所述第一长度,则根据所述初始序号的数值和所述第一长度,进行取模运算处理,得到所述干扰位置序号。
6.一种数据解密方法,其特征在于,包括:
将获取的目标加密数据转换为对应的第三字节数组,将所述第三字节数组的长度确定为第三长度;所述目标加密数据通过如权利要求1-5任一项所述的数据加密方法对目标数据加密得到;
对所述第三长度和预设的第二长度求差,得到第一长度;所述第一长度用于表征初始加密数据对应的第一字节数组的长度;所述第二长度用于表征所述第三字节数组中干扰项的长度;
根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
根据所述干扰位置序号、所述第二长度以及所述第三字节数组,确定所述第一散列值和所述初始加密数据;
根据预设密钥和所述第一散列值,对所述初始加密数据进行解密,得到所述目标数据。
7.根据权利要求6所述的方法,其特征在于,所述根据预设密钥和所述第一散列值,对所述初始加密数据进行解密,得到所述目标数据之后,还包括:
根据所述目标数据进行散列值计算,得到第二散列值;
根据所述第一散列值与所述第二散列值的字符串比较结果,确定所述目标数据是否被篡改。
8.根据权利要求6所述的方法,其特征在于,所述根据所述干扰位置序号、所述第二长度以及所述第三字节数组,确定所述第一散列值和所述初始加密数据,包括:
根据所述干扰位置序号和所述第二长度,确定所述干扰项的首字符在所述第三字节数组中的第一位置序号和所述干扰项的尾字符在所述第三字节数组中的第二位置序号;
根据所述第一位置序号和所述第二位置序号,对所述第三字节数组进行裁剪处理和拼接处理,得到所述第一字节数组和所述干扰项;
将所述干扰项转换得到的字符串确定为所述第一散列值,将所述第一字节数组转换得到的字符串确定为所述初始加密数据。
9.一种数据加密装置,其特征在于,所述装置包括:
第一计算单元,用于对获取的待加密数据进行散列值计算,得到预设长度的第一散列值;
加密单元,用于基于预设密钥和所述第一散列值,对所述待加密数据进行加密处理,得到初始加密数据;
第一转换单元,用于将所述初始加密数据转换为对应的第一字节数组,将所述字节数组的长度确定为第一长度,以及,将所述第一散列值转换为对应的第二字节数组,将所述第二字节数组确定为干扰项,将所述第二字节数组的长度确定为第二长度;
第二计算单元,用于根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
插入单元,用于根据所述干扰位置序号,将所述干扰项插入所述第一字节数组,得到目标加密数据。
10.一种数据解密装置,其特征在于,包括:
第二转换单元,用于将获取的目标加密数据转换为对应的第三字节数组,将所述第三字节数组的长度确定为第三长度;所述目标加密数据通过如权利要求1-5任一项所述的数据加密方法对目标数据加密得到;
第三计算单元,用于对所述第三长度和预设的第二长度求差,得到第一长度;所述第一长度用于表征初始加密数据对应的第一字节数组的长度;所述第二长度用于表征所述第三字节数组中干扰项的长度;
第四计算单元,用于根据所述第一长度和所述第二长度,计算得到干扰位置序号;所述干扰位置序号用于表征所述第一字节数组中待插入所述干扰项的字符位置;
确定单元,用于根据所述干扰位置序号、所述第二长度以及所述第三字节数组,确定所述第一散列值和所述初始加密数据;
解密单元,用于根据预设密钥和所述第一散列值,对所述初始加密数据进行解密,得到所述目标数据。
11.一种电子设备,其特征在于,所述设备包括:
处理器;以及,被配置为存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行如权利要求1-5任一项所述的数据加密方法,或者,如权利要求6-8任一项所述的数据解密方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时实现如权利要求1-5任一项所述的数据加密方法,或者,如权利要求6-8任一项所述的数据解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310086736.4A CN116132159B (zh) | 2023-02-02 | 2023-02-02 | 数据加密方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310086736.4A CN116132159B (zh) | 2023-02-02 | 2023-02-02 | 数据加密方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116132159A true CN116132159A (zh) | 2023-05-16 |
CN116132159B CN116132159B (zh) | 2024-04-09 |
Family
ID=86304405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310086736.4A Active CN116132159B (zh) | 2023-02-02 | 2023-02-02 | 数据加密方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116132159B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100268952A1 (en) * | 2009-04-21 | 2010-10-21 | International Business Machines Corporation | Optimization of Signing SOAP Body Element |
JP2014137423A (ja) * | 2013-01-15 | 2014-07-28 | Fujitsu Ltd | 暗号処理装置、方法およびプログラム |
CN104283930A (zh) * | 2013-07-11 | 2015-01-14 | 一零四资讯科技股份有限公司 | 安全索引的关键字搜索系统及建立该系统的方法 |
US20150019510A1 (en) * | 2013-07-15 | 2015-01-15 | International Business Machines Corporation | Applying a maximum size bound on content defined segmentation of data |
US9635011B1 (en) * | 2014-08-27 | 2017-04-25 | Jonetix Corporation | Encryption and decryption techniques using shuffle function |
CN111030803A (zh) * | 2019-12-19 | 2020-04-17 | 山东英信计算机技术有限公司 | 一种加密方法、装置及设备 |
CN111211888A (zh) * | 2019-12-23 | 2020-05-29 | 新奇点企业管理集团有限公司 | 数据发送方法、数据接收方法、发送端及接收端 |
CN112347498A (zh) * | 2020-12-01 | 2021-02-09 | 南阳理工学院 | 一种加密方法、装置、电子设备及可读存储介质 |
CN115442073A (zh) * | 2022-07-29 | 2022-12-06 | 远光软件股份有限公司 | 一种数字串的加密方法、解密方法、电子设备和存储介质 |
CN115499118A (zh) * | 2022-08-05 | 2022-12-20 | 北京海泰方圆科技股份有限公司 | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
-
2023
- 2023-02-02 CN CN202310086736.4A patent/CN116132159B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100268952A1 (en) * | 2009-04-21 | 2010-10-21 | International Business Machines Corporation | Optimization of Signing SOAP Body Element |
JP2014137423A (ja) * | 2013-01-15 | 2014-07-28 | Fujitsu Ltd | 暗号処理装置、方法およびプログラム |
CN104283930A (zh) * | 2013-07-11 | 2015-01-14 | 一零四资讯科技股份有限公司 | 安全索引的关键字搜索系统及建立该系统的方法 |
US20150019510A1 (en) * | 2013-07-15 | 2015-01-15 | International Business Machines Corporation | Applying a maximum size bound on content defined segmentation of data |
US9635011B1 (en) * | 2014-08-27 | 2017-04-25 | Jonetix Corporation | Encryption and decryption techniques using shuffle function |
CN111030803A (zh) * | 2019-12-19 | 2020-04-17 | 山东英信计算机技术有限公司 | 一种加密方法、装置及设备 |
CN111211888A (zh) * | 2019-12-23 | 2020-05-29 | 新奇点企业管理集团有限公司 | 数据发送方法、数据接收方法、发送端及接收端 |
CN112347498A (zh) * | 2020-12-01 | 2021-02-09 | 南阳理工学院 | 一种加密方法、装置、电子设备及可读存储介质 |
CN115442073A (zh) * | 2022-07-29 | 2022-12-06 | 远光软件股份有限公司 | 一种数字串的加密方法、解密方法、电子设备和存储介质 |
CN115499118A (zh) * | 2022-08-05 | 2022-12-20 | 北京海泰方圆科技股份有限公司 | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Non-Patent Citations (2)
Title |
---|
G L PRAKASH ET AL: "Data encryption and decryption algorithms using key rotations for data security in cloud system", 《IEEE》, 28 August 2014 (2014-08-28) * |
罗江华;: "基于MD5与Base64的混合加密算法", 计算机应用, no. 1, 10 July 2012 (2012-07-10) * |
Also Published As
Publication number | Publication date |
---|---|
CN116132159B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140223580A1 (en) | Method of and apparatus for processing software using hash function to secure software, and computer-readable medium storing executable instructions for performing the method | |
CN106055936B (zh) | 可执行程序数据包加密/解密方法及装置 | |
CN107786331B (zh) | 数据处理方法、装置、系统及计算机可读存储介质 | |
CN107306254B (zh) | 基于双层加密的数字版权保护方法及系统 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
CN108134673B (zh) | 一种生成白盒库文件的方法及装置 | |
CN108183796A (zh) | 利用白盒库文件和白盒密钥文件进行加解密的方法及装置 | |
CN105721156A (zh) | 用于模幂加密方案的通用编码函数 | |
CN114186264A (zh) | 数据随机加密、解密方法、装置及系统 | |
CN103873250A (zh) | 一种密文生成方法、密文解密方法及加密解密装置 | |
CN111859435B (zh) | 一种数据安全处理方法及装置 | |
CN111131282A (zh) | 请求加密方法、装置、电子设备及存储介质 | |
CN105847883B (zh) | 一种基于用户信任等级的节目流推送方法和装置 | |
CN112887297B (zh) | 保护隐私的差异数据确定方法、装置、设备及系统 | |
CN108933766B (zh) | 一种提高设备id安全性的方法和客户端 | |
CN116132159B (zh) | 数据加密方法、装置、电子设备及存储介质 | |
CN107968793B (zh) | 一种下载白盒密钥的方法、装置及存储介质 | |
CN114640443B (zh) | 一种在线工程报价安全交互方法和系统 | |
KR102284877B1 (ko) | 효율적인 교집합 연산을 위한 함수 암호 기술 | |
CN115361198A (zh) | 解密方法、加密方法、装置、计算机设备和存储介质 | |
CN114465720A (zh) | 密钥迁移方法及装置、存储介质和电子设备 | |
Gupta et al. | A comparative study of secure hash algorithms | |
CN114329546A (zh) | 文件的加密方法及装置、文件的解密方法 | |
JP6631989B2 (ja) | 暗号化装置、制御方法、及びプログラム | |
Liu et al. | A parallel encryption algorithm for dual-core processor based on chaotic map |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |