本公开涉及数据处理领域,尤其涉及一种数据加密、解密的方法、装置、电子设备和存储介质。
背景技术:
1、数据加密指通过加密算法和加密密钥将明文转变为密文,实现对明文的加密保护,提高明文的安全性。
2、目前由于对明文加密的加密算法是公开的,可通过分析加密算法来对密文进行破解导致明文的安全性较低,降低了明文的加密安全性。
3、因此,亟需具有较高安全性的数据加密、解密的方法、装置、电子设备和存储介质。
技术实现思路
1、本公开提供了一种数据加密、解密的方法、装置、电子设备和存储介质。
2、根据本公开的第一方面,提供了一种数据加密的方法。该方法包括:
3、将第一密钥进行二进制序列化,得到第二密钥,第一密钥由字节数数组组成且第一密钥的字节数量为n,n为大于等于1的正整数;
4、将原始数据切分为长度16×n个字节的原始数据块;
5、分别对各原始数据块中的数据根据第二密钥进行重新排序得到加密数据块;其中,若第二密钥的第i位为0,则将原始数据块中第2×i个字节数据作为加密数据块的第i个字节数据,将原始数据块中第2×i+1个字节数据作为加密数据块的第8×n+i个字节数据;若第二密钥的第i位为1,则将原始数据块中第2×i+1个字节数据作为加密数据块的第i个字节数据,将原始数据块中第2×i个字节数据作为加密数据块的第8×n+i个字节数据;其中,i为大于等于0的自然数;
6、按顺序合并加密数据块,得到加密数据。
7、如上的方面和任一可能的实现方式,进一步提供一种实现方式,将原始数据切分为长度16×n个字节的原始数据块具体为:
8、判断原始数据的长度是否为16×n个字节的m倍,m为大于等于1的正整数,
9、若是,则将原始数据切分为m个长度16×n个字节的原始数据块;
10、若不是,则对原始数据的末尾进行补0使得原始数据的长度为16×n个字节的m倍,将补0后的原始数据切分为m个长度16×n个字节的原始数据块。
11、如上的方面和任一可能的实现方式,进一步提供一种实现方式,对原始数据的末尾进行补0时,补0后的原始数据的最后两个字节用于记录补0的个数。
12、如上的方面和任一可能的实现方式,进一步提供一种实现方式,按顺序合并加密数据块的顺序和将原始数据切分为长度16×n个字节的原始数据块时的切分顺序相同。
13、如上的方面和任一可能的实现方式,进一步提供一种实现方式,将第一密钥进行二进制序列化表示将第一密钥中的每个字节以二进制形式进行表示。
14、根据本公开的第二方面,提供了一种数据解密的方法,该方法包括:
15、将第一密钥进行二进制序列化,得到第二密钥,第一密钥由字节数数组组成且第一密钥的字节数量为n,n为大于等于1的正整数;
16、将加密数据切分为长度16×n个字节的加密数据块;
17、分别对各加密数据块中的数据根据第二密钥进行重新排序得到解密数据块;其中,若第二密钥的第i位为0,则将加密数据块的第i个字节数据作为解密数据块中第2×i个字节数据,将加密数据块的第8×n+i个字节数据作为解密数据块中第2×i+1个字节数据;
18、若第二密钥的第i位为1,则将加密数据块的第i个字节数据作为解密数据块中第2×i+1个字节数据,将加密数据块的第8×n+i个字节数据作为解密数据块中第2×i个字节数据;其中,i为大于等于0的自然数;
19、按顺序合并解密数据块,得到解密数据。
20、如上的方面和任一可能的实现方式,进一步提供一种实现方式,按顺序合并解密数据块的顺序和将加密数据切分为长度16×n个字节的加密数据块时的切分顺序相同。
21、根据本公开的第三方面,提供了一种数据加密装置。该装置包括:
22、预处理模块,用于将第一密钥进行二进制序列化,得到第二密钥,第一密钥由字节数数组组成且第一密钥的字节数量为n,n为大于等于1的正整数;
23、切分模块,用于将原始数据切分为长度16×n个字节的原始数据块;
24、排序模块,用于分别对各原始数据块中的数据根据第二密钥进行重新排序得到加密数据块;其中,若第二密钥的第i位为0,则将原始数据块中第2×i个字节数据作为加密数据块的第i个字节数据,将原始数据块中第2×i+1个字节数据作为加密数据块的第8×n+i个字节数据;若第二密钥的第i位为1,则将原始数据块中第2×i+1个字节数据作为加密数据块的第i个字节数据,将原始数据块中第2×i个字节数据作为加密数据块的第8×n+i个字节数据;其中,i为大于等于0的自然数;
25、合并模块,用于按顺序合并加密数据块,得到加密数据。
26、根据本公开的第四方面,提供了一种数据解密装置。该装置包括:
27、预处理模块,用于将第一密钥进行二进制序列化,得到第二密钥,第一密钥由字节数数组组成且第一密钥的字节数量为n,n为大于等于1的正整数;
28、切分模块,用于将加密数据切分为长度16×n个字节的加密数据块;
29、排序模块,用于分别对各加密数据块中的数据根据第二密钥进行重新排序得到解密数据块;其中,若第二密钥的第i位为0,则将加密数据块的第i个字节数据作为解密数据块中第2×i个字节数据,将加密数据块的第8×n+i个字节数据作为解密数据块中第2×i+1个字节数据;若第二密钥的第i位为1,则将加密数据块的第i个字节数据作为解密数据块中第2×i+1个字节数据,将加密数据块的第8×n+i个字节数据作为解密数据块中第2×i个字节数据;其中,i为大于等于0的自然数;
30、合并模块,用于按顺序合并解密数据块,得到解密数据。
31、根据本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,存储器上存储有计算机程序,处理器执行程序时实现如以上的方法。
32、根据本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时实现如根据本公开的第一方面和/或第二发面的方法。
33、根据本公开的实施例,通过对所有的加密数据块中的数据根据第二密钥进行重新排序得到解密数据块,实现在字节数组层面对原始数据进行加密,且通过自定义密钥与根据密钥制定的加密规则,使得在密钥未知的情况下,减少对原始数据暴力破解的成功率,提高对原始数据加密的安全性;通过进行重新排序减少了加密操作步骤,提高对原始数据的加密效率。
34、应当理解,
技术实现要素:
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
1.一种数据加密的方法,包括:
2.根据权利要求1所述的方法,其中,所述将原始数据切分为长度16×n个字节的原始数据块具体为:
3.根据权利要求2所述的方法,其中,对所述原始数据的末尾进行补0时,补0后的原始数据的最后两个字节用于记录补0的个数。
4.根据权利要求1所述的方法,其中,按顺序合并所述加密数据块的顺序和将原始数据切分为长度16×n个字节的原始数据块时的切分顺序相同。
5.根据权利要求1所述的方法,其中,将第一密钥进行二进制序列化表示将所述第一密钥中的每个字节以二进制形式进行表示。
6.一种数据解密的方法,包括:
7.根据权利要求6所述的方法,其中,按顺序合并所述解密数据块的顺序和将加密数据切分为长度16×n个字节的加密数据块时的切分顺序相同。
8.一种数据加密装置,包括:
9.一种电子设备,包括:
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1至7中任一权利要求所述的方法。