本发明涉及计算机,具体而言,涉及一种数据加密方法、数据解密方法及相关装置。
背景技术:
1、随着信息技术的飞速发展,信息安全成为人们越来越关注的问题,信息如果遭到非法窃听、篡改、截取或者破坏,将会造成不可估量的损失。例如,在游戏中有很多配置文件的信息是不希望明文展示的;如果以明文展示的话,可能会造成玩家误改,或者是被其他工作室和外挂破解,对游戏进行破坏,从而对公司造成很大的损失。
2、为了保证信息安全,现有技术通常会使用各种各样的数据加密方式。例如,使用对称的加密方法(如des、3des、aes等)或者非对称的加密方法(如rsa、dsa等),其中,对称的加密方法的主要特点是加密和解密使用同一个密钥;非对称的加密方法的主要特点是加密和解密使用不同密钥,这两个密钥分别为“公钥”和“私钥”,想要正常的完成加密解密过程,就必须配对使用。
3、由于上述加密方法都是比较常见的一些方法,容易被分析和破解,并且加解密过程比较复杂,故加解密速度比较慢,难以适应游戏等实时性要求比较高的场景。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种数据加密方法、数据解密方法及相关装置,以解决现有的加解密方法存在的速度慢、容易被分析和破解的问题。
2、为了实现上述目的,本发明实施例采用的技术方案如下:
3、第一方面,本发明提供一种数据加密方法,所述方法包括:
4、根据生成的随机数确定位运算参数;
5、将原始数据进行按位取反操作,得到取反结果;
6、根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
7、在可选的实施方式中,所述根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,包括:
8、将所述取反结果向右移p-s位,得到所述取反结果对应的高位数据;其中,p表示所述原始数据的数据类型对应的二进制位数;
9、将所述取反结果向左移p-s位,得到所述取反结果对应的低位数据;
10、将所述取反结果与位逻辑运算参数进行与操作,得到所述取反结果对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
11、将所述取反结果对应的高位数据、低位数据和中位数据进行或操作,得到所述原始数据对应的加密数据。
12、在可选的实施方式中,所述位逻辑运算参数通过算法((1<<(p-s*2))-1)<<s获得。
13、在可选的实施方式中,所述根据生成的随机数确定位运算参数,包括:
14、计算生成的随机数除以预设值的余数,并将所述余数加一,得到位运算参数;其中,所述预设值根据所述原始数据的数据类型对应的二进制位数设置。
15、第二方面,本发明提供一种数据解密方法,所述方法包括:
16、获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
17、根据所述随机数确定位运算参数;
18、根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;
19、对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
20、在可选的实施方式中,所述根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果,包括:
21、将所述加密数据向右移m-s位,得到所述加密数据对应的高位数据;其中,m表示所述加密数据的数据类型对应的二进制位数;
22、将所述加密数据向左移m-s位,得到所述加密数据对应的低位数据;
23、将所述加密数据与位逻辑运算参数进行与操作,得到所述加密数据对应的中位数据;其中,所述位逻辑运算参数的前s位与后s位为0,其余位为1;
24、将所述加密数据对应的高位数据、低位数据和中位数据进行或操作,得到位运算结果。
25、第三方面,本发明提供一种数据加密装置,所述装置包括:
26、第一参数确定模块,用于根据生成的随机数确定位运算参数;
27、第一处理模块,用于将原始数据进行按位取反操作,得到取反结果;根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,并将所述加密数据与所述随机数关联;其中,所述加密数据的前s位和后s位相对于所述取反结果发生交换,s表示所述位运算参数。
28、第四方面,本发明提供一种数据解密装置,所述装置包括:
29、数据获取模块,用于获取加密数据以及所述加密数据关联的随机数;所述随机数是在原始数据的加密过程中随机生成;
30、第二参数确定模块,用于根据所述随机数确定位运算参数;
31、第二处理模块,用于根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果;其中,所述位运算结果的前s位和后s位相对于所述加密数据发生交换,s表示所述位运算参数;对所述位运算结果进行按位取反操作,得到所述加密数据对应的原始数据。
32、第五方面,本发明提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如前述实施方式中任一项所述的数据加密方法,或者实现如前述实施方式中任一项所述的数据解密方法。
33、第六方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的数据加密方法,或者实现如前述实施方式中任一项所述的数据解密方法。
34、本发明实施例提供的数据加密方法、数据解密方法及相关装置,该数据加密方法根据生成的随机数确定位运算参数,将原始数据进行按位取反操作,得到取反结果,根据位运算参数对取反结果进行位运算操作,得到原始数据对应的加密数据,并将加密数据与随机数关联;加密数据的前s位和后s位相对于取反结果发生交换,s表示位运算参数。可见,本发明实施例仅需少量的运算操作就可以完成数据的加解密过程,有效提高了加解密速度;同时,由于加密过程中使用的位运算参数是根据生成的随机数确定的,故能保证数据加密的随机性,增加数据被分析和破解的难度。
35、为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
1.一种数据加密方法,其特征在于,所述方法包括:
2.根据权利要求1所述的数据加密方法,其特征在于,所述根据所述位运算参数对所述取反结果进行位运算操作,得到所述原始数据对应的加密数据,包括:
3.根据权利要求2所述的数据加密方法,其特征在于,所述位逻辑运算参数通过算法((1<<(p-s*2))-1)<<s获得。
4.根据权利要求1-3任一项所述的数据加密方法,其特征在于,所述根据生成的随机数确定位运算参数,包括:
5.一种数据解密方法,其特征在于,所述方法包括:
6.根据权利要求5所述的数据解密方法,其特征在于,所述根据所述位运算参数对所述加密数据进行位运算操作,得到位运算结果,包括:
7.一种数据加密装置,其特征在于,所述装置包括:
8.一种数据解密装置,其特征在于,所述装置包括:
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1-4中任一项所述的数据加密方法,或者实现如权利要求5-6中任一项所述的数据解密方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一项所述的数据加密方法,或者实现如权利要求5-6中任一项所述的数据解密方法。