本公开涉及数据加密,尤其涉及一种数据加密、数据解密方法、装置及设备。
背景技术:
1、rsa算法是一种常用的对信息加密的方法,是互联网通信加密的基础,rsa加解密中必须考虑到密钥长度、明文长度和密文长度问题。因此当加密内容长度大于密钥长度时,将不能简单通过rsa算法实现。有效的rsa加解密就需要对内容进行分段,分成x个数据段,且x大于2。由于rsa算法的复杂性,就需要将数据分段后进行逐一加密,并将结果进行拼接。同样,解码也需要分段解码,并将结果进行拼接。计算过程极为耗时,简单分组方法对长数据加密几乎无法实际使用。
技术实现思路
1、以下是对本公开详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
2、本公开提供了一种数据加密方法、数据解密方法、装置及设备。
3、本公开的第一方面提供了一种数据加密方法,所述加密方法包括:
4、获取预设的rsa算法和待加密明文数据;
5、确定所述明文数据的数据长度和rsa算法长度;
6、判断所述数据长度是否大于所述rsa算法长度;
7、当所述数据长度大于所述rsa算法长度时,基于所述rsa算法长度对所述待加密明文数据进行数据分割,生成第一明文数据和第二明文数据;其中,所述第一明文数据的数据长度与所述rsa算法长度相同;
8、分别对所述第一明文数据和所述第二明文数据进行加密和拼接处理,得到加密后的密文数据。
9、在一些示例性实施例中,分别对所述第一明文数据和所述第二明文数据进行加密和拼接处理,包括:
10、基于所述rsa算法和所述rsa算法的公钥,对所述第一明文数据进行rsa加密运算,得到第一密文数据;
11、基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流,所述指定长度为所述第二明文数据的数据长度;
12、基于所述第二明文数据和所述密钥流进行加密计算,得到第二密文数据;其中,所述第二密文数据的数据长度与所述第二明文数据的数据长度相同;
13、将所述第一密文数据和所述第二密文数据以字符串连接的方式进行拼接。
14、在一些示例性实施例中,基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流包括:
15、以所述第一明文数据作为密钥派生函数的种子,基于密钥派生函数对所述第一明文数据进行密钥扩展,生成指定长度的密钥流。
16、在一些示例性实施例中,基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流包括:
17、以所述第一明文数据和加解密双方约定的约定数作为密钥派生函数的种子,基于密钥派生函数对所述第一明文数据进行密钥扩展,生成指定长度的密钥流。
18、本公开的第二方面提供了一种数据解密方法,所述解密方法包括:
19、获取预设的rsa算法的密钥和待解密密文数据;
20、确定所述密文数据的数据长度和所述rsa算法长度;
21、判断所述数据长度是否大于所述rsa算法长度;
22、当所述数据长度大于所述rsa算法长度时,基于所述rsa算法长度对所述待解密密文数据进行数据分割,生成第一密文数据和第二密文数据;其中,所述第一密文数据的数据长度与所述rsa算法长度相同;
23、分别对所述第一密文数据和所述第二密文数据进行解密和拼接处理,得到解密后的明文数据。
24、在一些示例性实施例中,分别对所述第一密文数据和所述第二密文数据进行解密和拼接处理,包括:
25、基于所述rsa算法和所述rsa算法的私钥,对所述第一密文数据进行rsa解密运算,得到第一明文数据;
26、基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流,所述指定长度为所述第二密文数据的数据长度;
27、基于所述第二密文数据和所述密钥流进行解密计算,得到第二明文数据;其中,所述第二明文数据的数据长度与所述第二密文数据的数据长度相同;
28、将所述第一明文数据和所述第二明文数据以字符串连接的方式进行拼接。
29、在一些示例性实施例中,基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流包括:
30、以所述第一明文数据作为密钥派生函数的种子,基于密钥派生函数对所述第一明文数据进行密钥扩展,生成指定长度的密钥流。
31、在一些示例性实施例中,基于所述第一明文数据进行密钥扩展,得到指定长度的密钥流包括:
32、以所述第一明文数据和加解密双方约定的约定数作为密钥派生函数的种子,基于密钥派生函数对所述第一明文数据进行密钥扩展,生成指定长度的密钥流。
33、本公开的第三方面提供了一种数据加密装置,所述加密装置包括:
34、加密获取单元,用于获取预设的rsa算法和待加密明文数据;
35、加密确定单元,用于确定所述明文数据的数据长度和rsa算法长度;
36、加密判断单元,用于判断所述数据长度是否大于所述rsa算法长度;
37、加密数据分割单元,用于当所述数据长度大于所述rsa算法长度时,基于所述rsa算法长度对所述明文数据进行数据分割,生成第一明文数据和第二明文数据;其中,所述第一明文数据的数据长度与所述rsa算法长度相同;
38、加密处理单元,用于分别对所述第一明文数据和所述第二明文数据进行加密和拼接处理,得到加密后的密文数据。
39、本公开的第四方面提供了一种数据解密装置,所述解密装置包括:
40、解密获取单元,用于获取预设的rsa算法的密钥和待解密密文数据;
41、解密确定单元,用于确定所述密文数据的数据长度和rsa算法长度;
42、解密判断单元,用于判断所述数据长度是否大于所述rsa算法长度;
43、解密数据分割单元,用于当所述数据长度大于所述rsa算法长度时,基于所述rsa算法长度对所述密文数据进行数据分割,生成第一密文数据和第二密文数据;其中,所述第一密文数据的数据长度与所述rsa算法长度相同;
44、解密处理单元,用于分别对所述第一密文数据和所述第二密文数据进行解密处理和拼接,得到解密后的明文数据。
45、本公开的第五方面提供了一种计算机设备,所述计算机设备包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器用于实现如权利要求第一方面所述的数据加密方法和/或如第二方面所述的数据解密方法。
46、本公开的第六方面提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由计算机设备的处理器执行时,使得计算机设备实现如第一方面所述的数据加密方法和/或如第二方面所述的数据解密方法。
47、本公开实施例所提供的数据加密、数据解密方法、装置及设备中,对于待加密明文数据的数据长度大于rsa算法长度的rsa长报文数据,以“一刀切”的方式分成了两个数据段,然后,分别针对分段后的两个数据段进行加密和拼接处理后,得到加密后的密文数据,因此,可以很好地完成长报文数据的加密,大大降低了算法复杂度及运算量,提高了加密算法的运行效率。