CN108052805B - 一种数据加解密方法和装置 - Google Patents
一种数据加解密方法和装置 Download PDFInfo
- Publication number
- CN108052805B CN108052805B CN201711163403.8A CN201711163403A CN108052805B CN 108052805 B CN108052805 B CN 108052805B CN 201711163403 A CN201711163403 A CN 201711163403A CN 108052805 B CN108052805 B CN 108052805B
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- bytes
- characters
- character
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000011218 segmentation Effects 0.000 claims abstract description 22
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 238000005215 recombination Methods 0.000 claims description 8
- 230000006798 recombination Effects 0.000 claims description 8
- 230000001502 supplementing effect Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 15
- 229910002056 binary alloy Inorganic materials 0.000 description 7
- 230000000694 effects Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种数据加解密方法和装置,该数据加密方法包括:将待保存数据按字节分组,每M个字节为一组,M为大于1的正整数;对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据。本发明公开的数据加解密方法和装置,将软件创建的工程数据以加密方式保存,使得待保存的工程数据无法被读懂,避免软件被逆向破解。
Description
技术领域
本发明涉及计算机技术,尤指一种数据加解密方法和装置。
背景技术
大部分软件在创建工程后,一般以二进制或者可扩展标记语言(ExtensibleMarkup Language,简称XML)的方式保存工程数据,甚至还有以文本方式保存的。然而,由于可以通过工程数据进行逆向工程,破解软件;或者对于一些建模软件,通过工程数据可以推导模型构建格式,从而导致工程数据的泄露。
发明内容
为了解决上述技术问题,本发明提供了一种数据加解密方法和装置,将软件创建的工程数据以加密方式保存,避免软件被逆向破解。
为了达到本发明目的,第一方面,本发明提供了一种数据加密方法,包括:
将待保存数据按字节分组,每M个字节为一组,M为大于1的正整数;
对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;
根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据。
第二方面,本发明提供了一种数据解密方法,包括:
获取使用加密密钥加密得到的加密保存数据,所述加密保存数据包括多个加密字符;
根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,N为大于1小于8的正整数;
将得到的N位的分段数据按照8位重新组合,得到解密后的数据。
第三方面,本发明提供了一种数据加密装置,包括:
分组模块,用于将待保存数据按字节分组,每M个字节为一组,M为大于1的正整;
分段模块,用于对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;
转化模块,用于根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据。
第四方面,本发明提供了一种数据解密装置,包括:
获取模块,用于获取使用加密密钥加密得到的加密保存数据,所述加密保存数据包括多个加密字符;
转化模块,用于根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,N为大于1小于8的正整数;
重组模块,用于将得到的N位的分段数据按照8位重新组合,得到解密后的数据。
第五方面,本发明提供了一种数据加密装置,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如上述实施例所述的数据加密方法。
第六方面,本发明提供了一种数据解密装置,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如上述实施例所述的数据解密方法。
本发明提供的数据加解密方法和装置,通过数据加密算法将待保存数据按字节处理,然后将每组字节进行分段处理,最后根据加密密钥得到加密保存数据,以实现对待保存数据的加密,将软件创建的工程数据以加密方式保存,使得待保存的工程数据无法被读懂,避免软件被逆向破解。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本发明实施例提供的数据加密方法的流程图;
图2为本发明实施例提供的字节分段的示意图;
图3为本发明实施例提供的分段处理结果的示意图;
图4为本发明实施例提供的数据解密方法的流程图;
图5为本发明实施例提供的输入数据分段处理结果的示意图;
图6为本发明实施例一提供的数据加密装置的结构示意图;
图7为本发明实施例二提供的数据加密装置的结构示意图;
图8为本发明实施例一提供的数据解密装置的结构示意图;
图9为本发明实施例二提供的数据解密装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1为本发明实施例提供的数据加密方法的流程图,如图1所示,本发明实施例提供的数据加密方法,包括:
S101:将待保存数据按字节分组,每M个字节为一组。
其中,M为大于1的正整数。
S102:对每组字节按位进行分段处理,每N位为一分段数据。
其中,N为大于1小于8的正整数。
S103:根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据。
具体的,本发明实施例为了解决软件创建的工程数据在保存后被泄露的问题,通过数据加密算法将待保存数据按字节处理,然后将每组字节进行分段处理,最后根据加密密钥得到加密保存数据,以实现对待保存数据的加密,将软件创建的工程数据以加密方式保存,使得待保存的工程数据无法被读懂,避免软件被逆向破解。
本发明实施例以M=3,N=6为例进行详细阐述,其余情况与M=3,N=6加密的实现原理类似,本发明实施例在此不进行一一赘述。本发明实施例提供的数据加密算法首先将待保存工程数据按字节处理,3字节一组,然后每组字节按6位(bit)分段。图2为本发明实施例提供的字节分段的示意图,图3为本发明实施例提供的分段处理结果的示意图,如图2和图3所示,字节1的高6bit分为一段,字节1的低2bit与字节2的高4bit合并为一段,字节2的低4bit与字节3的高2bit合并为一段,字节3的低6bit为一段,得到4段分段数据,依次类推每组都可以分为4段分段数据。根据加密密钥,将4段分段数据中的每一分段数据转化为对应的一个加密字符,得到加密保存数据。
本发明实施例提供的数据加密方法,通过数据加密算法将待保存数据按字节处理,然后将每组字节进行分段处理,最后根据加密密钥得到加密保存数据,以实现对待保存数据的加密,将软件创建的工程数据以加密方式保存,使得待保存的工程数据无法被读懂,避免软件被逆向破解。
进一步地,在图1所示实施例中,对每组字节按位进行分段处理,包括:当所分的段不足N位时,通过低位补0使其成为一个N位的分段数据。
具体的,在将每组字节按位进行分段处理时,存在某一段,比如最后一段不足N位的情况,此时,本发明实施例通过低位补0的方式使得该分段数据为一个N位的分段数据。比如,以N=6为例,若图2中字节3中的有效位数只有4bit,假设有效的4bit是“1001”,此时,字节3的高2bit“10”与字节2的低4bit合并为一段,在字节3的低2bit“01”后面补4位0,得到6bit的分段数据“010000”。
进一步地,在图1所示实施例中,将每组字节经分段处理后得到的每一分段数据分别转化为对应的一个加密字符,包括:将对M个字节的组分段处理得到的M’个分段数据转化为M’个加密字符;将对不足M个字节的组分段处理得到的M”段数据转化为M”个加密字符,并补充M’-M”个填充字符,填充字符不同于加密字符。
其中,M’为大于M的正整数,M”为小于M’的正整数。
具体的,在将待保存数据按字节处理时,存在某一组,比如最后一组,字节不足M个字节的情况,此时,本发明实施例将够M个字节的组分段处理得到的每一个分段数据转化为对应的加密字符即可;将不够M个字节的组分段处理得到的每一个分段数据转化为对应的加密字符之后,通过在得到若干个加密字符后面补充填充字符的方式,以使不够M个字节的组转化的加密字符的个数与M个字节的组转化的加密字符的个数相同。比如,以M=3为例,如图2和图3所示,字节1、字节2和字节3满足3字节一组,分段后得到4段分段数据,将4段分段数据中的每一段分段数据转化为对应的加密字符即可。若图2中字节3后面还有字节4和字节5两个字节,则该分组只有两个字节,此时,两个字节分段处理只得到2段分段数据,将这2段分段数据分别转化为对应的加密字符后,在这两个加密字符后补充2个填充字符。需要说明的是,补充的多个填充字符可以相同,也可以不相同,只要与分段数据转化的加密字符不同即可。一般将字符“*”作为填充字符。
进一步地,在图1所示实施例中,加密密钥为任意不重复的2N个加密字符组成的加密字符数组。
具体的,加密密钥是一个维度为2N的字符数组,可以定义除了填充字符外的不重复的2N个字符。比如,以N=6,填充字符为字符“*”为例,加密密钥可以定义为除了字符“*”外的不重复的64个字符。
根据加密密钥,将每组字节经分段处理后得到的每一分段数据分别转化为对应的秘密数据,包括:对将每组字节经分段处理后得到的每一分段数据,确定该分段数据的十进制值,将该分段数据转化为加密字符数组中下标为该十进制值的加密字符。
具体的,逐个以每一分段数据对应的十进制值为下标,从加密字符数组中取相应下标处的字符,将该分段数据转化为加密字符数组中下标为该十进制值的加密字符。比如,若图3中第1分段的分段数据对应的十进制值为21,加密字符数组下标为21处的字符为“V”,则该分段数据的加密字符为字符“V”。
图4为本发明实施例提供的数据解密方法的流程图,如图4所示,本发明实施例提供的数据解密方法,包括:
S401:获取使用加密密钥加密得到的加密保存数据,加密保存数据包括多个加密字符。
S402:根据与加密密钥对应的解密密钥,将加密保存数据中每一个加密字符转化为一个N位的分段数据。
其中,N为大于1小于8的正整数。
S403:将得到的N位的分段数据按照8位重新组合,得到解密后的数据。
具体的,解密是加密的逆过程,通过逆向解密序列化算法,即根据与加密密钥对应的解密密钥,将加密保密数据中的每一个加密字符转化为一个对应的分段数据,然后将分段数据进行重组,解密上述实施例根据加密密钥加密得到的加密保存数据,从而还原为软件创建的工程数据。
举例来说,加密保存数据是从图2到图3的转化后,根据加密字符将图3中的分段数据转化为对应的加密字符的加密过程得到的;则解密后的数据是根据与加密密钥对应的解密密钥将加密字符转化为分段数据后,从图3到图2的转化过程得到的。
本发明实施例提供的数据解密方法,通过根据与加密密钥对应的解密密钥,将加密保存数据中每一个加密字符转化为一个N位的分段数据,将得到的N位的分段数据按照8位重新组合,得到解密后的数据。实现将加密保存数据还原为软件能理解的工程数据,从而避免工程数据的泄露。
进一步地,在图4所示实施例中,加密密钥为任意不重复的2N个加密字符组成的加密字符数组,解密密钥为一个2N+1个数值组成的数值数组,对加密密钥中的每一加密字符,数值数组中以该加密字符的ASCII码值为下标的数值等于该加密字符在加密字符数组中的下标。
具体的,解密密钥是与加密密钥对称使用的,加密密钥定义好后,解密密钥就确定。加密密钥具体详见上述数据加密方法中关于加密密钥的描述,此处不再赘述。解密密钥遵循的规则是:在解密密钥字符数组中,在加密密钥中字符对应的十进制ASCⅡ码值下标的位置,记录加密密钥中该字符在加密字符数组中的下标,空的位置默认为255。比如,若加密密钥中的一个字符为“V”,且字符“V”位于加密密钥中下标21处,由于字符“V”对应的十进制ASCⅡ码值为86,则此时生成的解密密钥下标为86处对应的数值为21。
根据与加密密钥对应的解密密钥,将加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:对加密保存数据中每一个加密字符,确定数值数组中下标等于该加密字符ASCII码值的数值,根据该数值得到该加密字符转化得到的N位的分段数据。
具体的,逐个确定加密保存数据中加密字符对应的十进制ASCII码值,并获取在解密密钥的下标为该字符的十进制ASCII码值处的数值。比如,若加密密钥中的一个字符为“V”,解密密钥下标为86处对应的数值为21,由于字符“V”对应的十进制ASCⅡ码值为86,则根据解密密钥,将加密字符“V”解密为数值21,并将21转化为N位的二进制分段数据。
本发明实施例定义了一套加、解密密钥的生成规则,用户可以根据需求自已定义密钥对,确保生成的加、解密密钥的随机性,提高了加、解密数据的安全性。
进一步地,在图4所示实施例中,加密保存数据采用上述实施例的数据加密方法加密得到;
根据与加密密钥对应的解密密钥,将加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:从加密保存数据的开始位置依次读取字符,对读取到的加密字符进行转化,如读取到指定的填充字符,则停止转化并丢弃该填充字符。
具体的,在读取到填充字符时,则表示是加密时补入的,停止转化并丢弃该填充字符。
将得到的N位的分段数据按照8位重新组合,得到解密后的数据,包括:如从开始位置按照8位重新组合后,余下不足N位的全0数据,则丢弃余下的全0数据。
具体的,分段数据按8位重新组合,最后一个8位可以少位数,不需补。但如果是全0,则表示是加密时补入的,需要去掉。
举例来说,本发明实施例将定义一组密钥对,模拟一组数据,进行数据的加密序列化和反序列化,验证算法的正确性,加密密钥定为{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'},对应的解密密钥生成为{255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,62,255,255,255,63,52,53,54,55,56,57,58,59,60,61,255,255,255,255,255,255,255,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,255,255,255,255,255,255,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,255,255,255,255,255},输入数据设置为一个32位的数据0X5566AABB。
按照数据加密算法,输入的32位数据,可以分为两个3字节组,每组按6bit分段。图5为本发明实施例提供的输入数据分段处理结果的示意图,如图5所示。第一段的二进制为010101,十进制为21,在加密密钥数组下标21的位置取字符‘V’;第二段的二进制为010110,十进制为22,在加密密钥数组下标22的位置取字符‘W’;第三段的二进制为011010,十进制为26,在加密密钥数组下标26的位置取字符‘a’;第四段的二进制为101010,十进制为42,在加密密钥数组下标42的位置取字符‘q’;第五段的二进制为101110,十进制为46,在加密密钥数组下标46的位置取字符‘u’;第六段只有2bit,则低4bit用0补齐,二进制为110000,十进制为48,在加密密钥数组下标48的位置取字符‘w’;由于加密后要按4字节对齐,这里还差2字节,按算法用‘*’补齐,即数据0X5566AABB加密后的数据为“VWaquw**”。
解密则将字符串“VWaquw**”逐个字符处理,先取字符‘V’,字符‘V’的ASCⅡ码值为86,则在解密密钥数组下标为86的位置取数为21,对应的二进制为010101,按同样的方法,字符‘W’恢复后的二进制为010110,依次类推,直到处理字符‘*’停止,然后将所有6bit二进制数据按8bit组合,即可还原数据为0X5566AABB,与输入数据一致。
图6为本发明实施例一提供的数据加密装置的结构示意图,如图6所示,本发明实施例提供的数据加密装置,包括:分组模块61、分段模块62和转化模块63。
分组模块61,用于将待保存数据按字节分组,每M个字节为一组,M为大于1的正整;
分段模块62,用于对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;
转化模块63,用于根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据。
本发明实施例中提供的数据加密装置用于执行图1所示方法实施例的技术方案,其实现原理和实现效果类似,此处不再赘述。
进一步地,在图6所示实施例中,当所分的段不足N位时,通过低位补0使其成为一个N位的分段数据;N=2或4或6。
进一步地,在图6所示实施例中,转化模块63将每组字节经分段处理后得到的每一分段数据分别转化为对应的一个加密字符,包括:
将对M个字节的组分段处理得到的M’个分段数据转化为M’个加密字符;
将对不足M个字节的组分段处理得到的M”段数据转化为M”个加密字符,并补充M’-M”个填充字符,所述填充字符不同于加密字符;
其中,M’为大于M的正整数,M”为小于M’的正整数。
进一步地,在图6所示实施例中,所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组;
转化模块63根据加密密钥,将每组字节经分段处理后得到的每一分段数据分别转化为对应的秘密数据,包括:
对将每组字节经分段处理后得到的每一分段数据,确定该分段数据的十进制值,将该分段数据转化为所述加密字符数组中下标为该十进制值的加密字符。
图7为本发明实施例二提供的数据加密装置的结构示意图,如图7所示,本发明实施例提供的数据加密装置,包括:存储器71和处理器72。
存储器71用于存储执行指令,处理器72可以是一个中央处理器(CentralProcessing Unit,CPU),或者是特定集成电路(Application Specific IntegratedCircuit,ASIC),或者完成实施本发明实施例的一个或多个集成电路。当数据加密装置运行时,处理器72与存储器71之间通信,处理器72调用执行指令,用于执行上述实施例所述的数据解密方法。
图8为本发明实施例一提供的数据解密装置的结构示意图,如图8所示,本发明实施例提供的数据加密装置,包括:获取模块81、转化模块82和重组模块83。
获取模块81,用于获取使用加密密钥加密得到的加密保存数据,所述加密保存数据包括多个加密字符;
转化模块82,用于根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,N为大于1小于8的正整数;
重组模块83,用于将得到的N位的分段数据按照8位重新组合,得到解密后的数据。
本发明实施例中提供的数据解密装置用于执行图4所示方法实施例的技术方案,其实现原理和实现效果类似,此处不再赘述。
进一步地,在图8所示实施例中,所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组,所述解密密钥为一个2N+1个数值组成的数值数组,对所述加密密钥中的每一加密字符,所述数值数组中以该加密字符的ASCII码值为下标的数值等于该加密字符在所述加密字符数组中的下标;
转化模块82根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:对所述加密保存数据中每一个加密字符,确定所述数值数组中下标等于该加密字符ASCII码值的数值,根据该数值得到该加密字符转化得到的N位的分段数据。
进一步地,在图8所示实施例中,所述加密保存数据采用如上述实施例所述的数据加密方法加密得到;
转化模块82根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:从所述加密保存数据的开始位置依次读取字符,对读取到的加密字符进行转化,如读取到指定的填充字符,则停止转化并丢弃该填充字符;
重组模块83将得到的N位的分段数据按照8位重新组合,得到解密后的数据,包括:如从开始位置按照8位重新组合后,余下不足N位的全0数据,则丢弃余下的所述全0数据。
图9为本发明实施例二提供的数据解密装置的结构示意图,如图9所示,本发明实施例提供的数据解密装置,包括:存储器91和处理器92。
存储器91用于存储执行指令,处理器92可以是一个中央处理器(CentralProcessing Unit,CPU),或者是特定集成电路(Application Specific IntegratedCircuit,ASIC),或者完成实施本发明实施例的一个或多个集成电路。当数据解密装置运行时,处理器92与存储器91之间通信,处理器92调用执行指令,用于执行上述实施例所述的数据解密方法。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (11)
1.一种数据加密方法,包括:
将待保存数据按字节分组,每M个字节为一组,M为大于1的正整数;
对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;
根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据;
将每组字节经分段处理后得到的每一分段数据分别转化为对应的一个加密字符,包括:
将对M个字节的组分段处理得到的M’个分段数据转化为M’个加密字符;
将对不足M个字节的组分段处理得到的M”段数据转化为M”个加密字符,并补充M’-M”个填充字符,所述填充字符不同于加密字符;
其中,M’为大于M的正整数,M”为小于M’的正整数;
所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组;
根据加密密钥,将每组字节经分段处理后得到的每一分段数据分别转化为对应的秘密数据,包括:
对将每组字节经分段处理后得到的每一分段数据,确定该分段数据的十进制值,将该分段数据转化为所述加密字符数组中下标为该十进制值的加密字符。
2.根据权利要求1所述的数据加密方法,其特征在于:
对每组字节按位进行分段处理,包括:当所分的段不足N位时,通过低位补0使其成为一个N位的分段数据。
3.根据权利要求1所述的数据加密方法,其特征在于:
N=2或4或6。
4.一种数据解密方法,包括:
获取使用加密密钥加密得到的加密保存数据,所述加密保存数据包括多个加密字符;
根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,N为大于1小于8的正整数;
将得到的N位的分段数据按照8位重新组合,得到解密后的数据;
所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组,所述解密密钥为一个2N+1个数值组成的数值数组,对所述加密密钥中的每一加密字符,所述数值数组中以该加密字符的ASCII码值为下标的数值等于该加密字符在所述加密字符数组中的下标;
根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:对所述加密保存数据中每一个加密字符,确定所述数值数组中下标等于该加密字符ASCII码值的数值,根据该数值得到该加密字符转化得到的N位的分段数据。
5.根据权利要求4所述的数据解密方法,其特征在于:
所述加密保存数据采用如权利要求1的数据加密方法加密得到;
根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:从所述加密保存数据的开始位置依次读取字符,对读取到的加密字符进行转化,如读取到指定的填充字符,则停止转化并丢弃该填充字符;
将得到的N位的分段数据按照8位重新组合,得到解密后的数据,包括:如从开始位置按照8位重新组合后,余下不足N位的全0数据,则丢弃余下的所述全0数据。
6.一种数据加密装置,其特征在于,包括:
分组模块,用于将待保存数据按字节分组,每M个字节为一组,M为大于1的正整;
分段模块,用于对每组字节按位进行分段处理,每N位为一分段数据,N为大于1小于8的正整数;
转化模块,用于根据加密密钥,将每组字节经分段处理后得到的每一分段数据转化为对应的一个加密字符,得到加密保存数据;
所述转化模块将每组字节经分段处理后得到的每一分段数据分别转化为对应的一个加密字符,包括:
将对M个字节的组分段处理得到的M’个分段数据转化为M’个加密字符;
将对不足M个字节的组分段处理得到的M”段数据转化为M”个加密字符,并补充M’-M”个填充字符,所述填充字符不同于加密字符;
其中,M’为大于M的正整数,M”为小于M’的正整数;
所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组;
所述转化模块根据加密密钥,将每组字节经分段处理后得到的每一分段数据分别转化为对应的秘密数据,包括:
对将每组字节经分段处理后得到的每一分段数据,确定该分段数据的十进制值,将该分段数据转化为所述加密字符数组中下标为该十进制值的加密字符。
7.根据权利要求6所述的数据加密装置,其特征在于:
所述分段模块对每组字节按位进行分段处理,包括:当所分的段不足N位时,通过低位补0使其成为一个N位的分段数据;
其中,N=2或4或6。
8.一种数据解密装置,其特征在于,包括:
获取模块,用于获取使用加密密钥加密得到的加密保存数据,所述加密保存数据包括多个加密字符;
转化模块,用于根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,N为大于1小于8的正整数;
重组模块,用于将得到的N位的分段数据按照8位重新组合,得到解密后的数据;
所述加密密钥为任意不重复的2N个加密字符组成的加密字符数组,所述解密密钥为一个2N+1个数值组成的数值数组,对所述加密密钥中的每一加密字符,所述数值数组中以该加密字符的ASCII码值为下标的数值等于该加密字符在所述加密字符数组中的下标;
所述转化模块根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:对所述加密保存数据中每一个加密字符,确定所述数值数组中下标等于该加密字符ASCII码值的数值,根据该数值得到该加密字符转化得到的N位的分段数据。
9.根据权利要求8所述的数据解密装置,其特征在于:
所述加密保存数据采用如权利要求1的数据加密方法加密得到;
所述转化模块根据与所述加密密钥对应的解密密钥,将所述加密保存数据中每一个加密字符转化为一个N位的分段数据,包括:从所述加密保存数据的开始位置依次读取字符,对读取到的加密字符进行转化,如读取到指定的填充字符,则停止转化并丢弃该填充字符;
所述重组模块将得到的N位的分段数据按照8位重新组合,得到解密后的数据,包括:如从开始位置按照8位重新组合后,余下不足N位的全0数据,则丢弃余下的所述全0数据。
10.一种数据加密装置,其特征在于,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如权利要求1-3任一项所述的数据加密方法。
11.一种数据解密装置,其特征在于,包括存储器和处理器,存储器用于存储执行指令;处理器调用所述执行指令,用于执行如权利要求4-5任一项所述的数据解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711163403.8A CN108052805B (zh) | 2017-11-20 | 2017-11-20 | 一种数据加解密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711163403.8A CN108052805B (zh) | 2017-11-20 | 2017-11-20 | 一种数据加解密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052805A CN108052805A (zh) | 2018-05-18 |
CN108052805B true CN108052805B (zh) | 2021-07-30 |
Family
ID=62119138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711163403.8A Active CN108052805B (zh) | 2017-11-20 | 2017-11-20 | 一种数据加解密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108052805B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635573B (zh) * | 2018-11-12 | 2019-12-06 | 北京海泰方圆科技股份有限公司 | 数据分布式加解密的系统、方法、装置、电子设备及介质 |
CN111159730B (zh) * | 2019-12-13 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 数据处理方法、查询方法、装置、电子设备和系统 |
CN111222155A (zh) * | 2020-01-08 | 2020-06-02 | 湖南智慧政务区块链科技有限公司 | 一种重加密与区块链结合的方法及系统 |
CN116108214B (zh) * | 2023-02-24 | 2024-02-06 | 中科星图数字地球合肥有限公司 | 遥感影像数据的处理方法、装置、计算机设备和存储介质 |
CN116527400B (zh) * | 2023-06-29 | 2023-09-12 | 北京可利邦信息技术股份有限公司 | 一种多方向置乱的数据加密方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1163814C (zh) * | 2000-04-28 | 2004-08-25 | 西南交通大学 | 一种数字数据变换方法 |
US8194754B2 (en) * | 2005-10-13 | 2012-06-05 | Lg Electronics Inc. | Method for processing a signal and apparatus for processing a signal |
CN102904711B (zh) * | 2011-07-25 | 2016-02-03 | 深圳市金溢科技股份有限公司 | 信息加密方法 |
WO2015114539A1 (en) * | 2014-01-28 | 2015-08-06 | Kba-Notasys Sa | A system for simple coding, authentication and copy detection of printed documents |
CN104486073B (zh) * | 2014-12-23 | 2017-08-11 | 南通大学 | 一种字符型数据的加密、解密方法 |
CN106712946B (zh) * | 2017-02-07 | 2020-06-26 | 上海瀚银信息技术有限公司 | 一种数据安全传输方法 |
-
2017
- 2017-11-20 CN CN201711163403.8A patent/CN108052805B/zh active Active
Non-Patent Citations (1)
Title |
---|
Quantum Hash function and its application to privacy amplification in quantum key distribution, pseudo-random number generation and image encryption;Yu-Guang Yang et al;《Scientific Reports》;20160129;第1-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108052805A (zh) | 2018-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052805B (zh) | 一种数据加解密方法和装置 | |
US7724897B2 (en) | Program converter, encrypting device, and encrypting method | |
CN109993008A (zh) | 用于隐式完整性的方法和布置 | |
CN107534549B (zh) | 可读存储介质、用于数据流字块加密的方法及系统 | |
MX2011001228A (es) | Metodo para generar un codigo de autenticacion de mensajes basados en el cifrado. | |
US20200177380A1 (en) | Seed key expansion method and its uses | |
CN114221766B (zh) | 数据加密方法、解密方法及装置 | |
CN108063760B (zh) | 一种分组加密的方法及其系统、分组解密的方法 | |
US8370411B2 (en) | Generating unique random numbers for multiple instantiations | |
CN111753317A (zh) | 一种等长数字加密的实现方法 | |
CN113938270A (zh) | 弹性降低复杂度的数据加密方法和装置 | |
US6374278B1 (en) | Method and apparatus for the generation of statistically random numbers | |
CN114124359A (zh) | 保留格式加密数据的方法、装置、电子设备及存储介质 | |
CN112148661A (zh) | 数据处理方法和电子设备 | |
US8832450B2 (en) | Methods and apparatus for data hashing based on non-linear operations | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
CN115941304A (zh) | 数据的加密方法、装置、终端设备和计算机可读存储介质 | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
CN113722746A (zh) | 电缆施工图纸的混沌加密方法及系统 | |
CN113890722A (zh) | 一种可压缩的六维无简并超混沌图像保密系统及方法 | |
CN115114279A (zh) | 置换表生成方法、数据加、解密方法及装置、介质、设备 | |
CN116484443B (zh) | 一种基于鸿蒙系统的可信安全存储方法及装置 | |
US11902415B2 (en) | Secure computing device, secure computing method, and program | |
CN117057804B (zh) | 基于哈希序列的金融交易数据安全存储方法及系统 | |
CN117353923B (zh) | 轻量级哈希加密算法的演练方法及相关设备 |
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 |