一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据加解密方法、装置、电子设备及存储介质与流程

2021-12-01 00:45:00 来源:中国专利 TAG:


1.本发明涉及数据加密技术领域,尤其涉及一种数据加解密方法、装置、电子设备及存储介质。


背景技术:

2.随着网络的快速发展和普及,网络上传输的数据成几何级数增长。在越来越注重隐私的今天,数据传输的安全性显得尤为重要。目前很多应用在网络上传输数据的处理方式为:(1)没有加密,使用明文传输;(2)使用md5(英文:md5 message

digest algorithm,中文:md5信息摘要算法)等散列方式对登录密码等身份认证信息加密,其余使用明文传输;(3)使用对称加密,加密的密钥被加密后存储在客户端;(4)使用非对称加密。
3.上述的数据传输若使用对称算法加密,由于其密钥存储在客户端,容易被本地破解,而且由于数据传输使用对称加密,密钥是固定不变的,容易发生密钥泄漏,密钥泄漏后历史传输数据都会被解密。数据传输若使用非对称算法加密,则性能较差,且无法双向加密。


技术实现要素:

4.本发明提供一种数据加解密方法、装置、电子设备及存储介质,用以解决现有技术中数据传输使用对称加密由于密钥固定不变存在容易泄露的问题和采用非对称加密存在低性能且无法双向加密的问题,采用对称加密算法和非对称加密算法相结合的方式,实现数据加密的安全性和高效性。
5.本发明提供一种数据加密方法,包括在客户端执行数据加密步骤,所述数据加密步骤包括:
6.随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥;
7.使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
8.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
9.根据本发明所述的一种数据加密方法,执行所述随机生成第一密钥的步骤之前,包括:
10.获取由服务器端生成的所述第二密钥,所述第二密钥存储在服务器端。
11.根据本发明所述的一种数据加密方法,所述获取由服务器端生成的所述第二密钥,包括:
12.获取由服务器端使用非对称加密算法rsa生成的所述第二密钥,所述第二密钥包括用于加密的公钥和用于解密的私钥。
13.根据本发明所述的一种数据加密方法,所述随机生成第一密钥,包括:
14.在客户端每次发起请求前,使用对称加密算法aes随机生成所述第一密钥;
15.将所述第一密钥缓存在客户端。
16.本发明提供一种数据解密方法,包括在服务器端执行数据解密步骤,所述数据解密步骤包括:
17.使用第二密钥对第三密钥进行解密,得到第一密钥;
18.使用所述第一密钥对第一被加密数据进行解密,得到需加密数据;
19.其中,所述第二密钥是预先在服务器端生成的,所述第一密钥是在客户端发起请求前随机生成的,所述第三密钥是使用所述第二密钥对所述第一密钥进行加密获得的,所述第一被加密数据是使用所述第一密钥对所需加密数据进行加密获得的;
20.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
21.根据本发明所述的一种数据解密方法,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;所述第一密钥是使用对称加密算法aes随机生成的。
22.本发明提供一种数据加解密方法,包括在客户端执行数据加密步骤和/或在服务器端执行数据解密步骤,其中,
23.所述数据加密步骤,包括:
24.随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥;
25.使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
26.所述数据解密步骤,包括:
27.使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥;
28.使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据;
29.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
30.根据本发明提供的一种数据加解密方法,执行所述使用所述第一密钥对所述被加密数据进行解密,得到所述需加密数据之后,包括:
31.接收服务器端返回的第二被加密数据,所述第二被加密数据是由服务器端对客户端发起的请求数据进行处理并将处理后的响应数据使用所述第一密钥进行加密后得到的;
32.使用所述第一密钥对所述被第二被加密数据进行解密。
33.根据本发明提供的一种数据加解密方法,执行所述随机生成第一密钥的步骤之前,包括:
34.获取由服务器端生成的所述第二密钥,所述第二密钥存储在服务器端。
35.根据本发明提供的一种数据加解密方法,所述获取由服务器端生成的所述第二密钥,包括:
36.获取由服务器端使用非对称加密算法rsa生成的所述第二密钥,所述第二密钥包括用于加密的公钥和用于解密的私钥。
37.根据本发明提供的一种数据加解密方法,所述随机生成第一密钥,包括:
38.在客户端每次发起请求前,使用对称加密算法aes随机生成所述第一密钥;
39.将所述第一密钥缓存在客户端。
40.本发明提供一种数据加密装置,包括在客户端执行数据加密步骤的加密模块,所述加密模块用于随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥,并使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
41.根据本发明所述的一种数据加密装置,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;所述第一密钥是使用对称加密算法aes随机生成的。
42.本发明提供一种数据解密装置,包括在服务器端执行数据解密步骤的解密模块,所述解密模块用于使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥,并使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据;
43.其中,所述第二密钥是预先在服务器端生成的,所述第一密钥是在客户端发起请求前随机生成的,所述第三密钥是使用所述第二密钥对所述第一密钥进行加密获得的,所述第一被加密数据是使用所述第一密钥对所需加密数据进行加密获得的;
44.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
45.根据本发明所述的一种数据解密装置,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;所述第一密钥是使用对称加密算法aes随机生成的。
46.本发明提供一种数据加解密装置,包括在客户端执行数据加密步骤的加密模块和/或在服务器端执行数据解密步骤的解密模块,其中,
47.加密模块,用于随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥,并使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
48.解密模块,用于使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥,并使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据;
49.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
50.根据本发明提供的一种数据加解密装置,还包括:
51.加解密模块,用于对客户端发起的请求数据进行处理,并将处理后的响应数据使用所述第一密钥进行加密,得到第二被加密数据,并将所述第二被加密数据返回给客户端,并使用所述第一密钥对所述被第二被加密数据进行解密。
52.根据本发明提供的一种数据加解密装置,还包括:
53.第二密钥生成模块,用于在服务器端生成所述第二密钥,并将所述第二密钥存储在服务器端。
54.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据加解密方
法的步骤。
55.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据加解密方法的步骤。
56.本发明提供一种数据加解密方法、装置、电子设备及存储介质,用以解决现有技术中数据传输使用对称加密由于密钥固定不变存在容易泄露的问题和采用非对称加密存在低性能且无法双向加密的问题,采用对称加密算法和非对称加密算法相结合的方式,并且数据传输的加密密钥是通过客户端运行时随机产生的,实现数据加密的安全性和高效性。
附图说明
57.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
58.图1是本发明提供的数据加密方法的流程示意图;
59.图2是本发明提供的数据解密方法的流程示意图;
60.图3是本发明提供的数据加解密方法的流程示意图;
61.图4是本发明提供的响应数据处理的流程示意图;
62.图5是本发明提供的生成rsa公钥的流程示意图;
63.图6是本发明提供的rsa加解密过程的示意图;
64.图7是本发明提供的生成aes密钥的流程示意图;
65.图8是本发明提供的aes加解密过程的示意图
66.图9是本发明提供的数据加解密方法的时序图;
67.图10是本发明提供的数据加解密装置的结构示意图;
68.图11是本发明提供的电子设备的结构示意图。
具体实施方式
69.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
70.本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本发明中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征向量可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通
过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本发明中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明方案的目的。
71.数据加密,是指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文,其核心是密码学。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。其利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。
72.常见的加密算法可以分成三类,对称加密算法,非对称加密算法和hash算法。其中,常见的对称加密算法:des、3des、desx、blowfish、idea、rc4、rc5、rc6和aes。常见的非对称加密算法:rsa、ecc(移动设备用)、diffie

hellman、el gamal、dsa(数字签名用)。常见的hash算法:md2、md4、md5、haval、sha、sha

1、hmac、hmac

md5、hmac

sha1。
73.本发明提供一种数据加解密方法、装置、电子设备及存储介质,用以解决现有技术中数据传输使用对称加密由于密钥固定不变存在容易泄露的问题和采用非对称加密存在低性能且无法双向加密的问题,采用对称加密算法和非对称加密算法相结合的方式,实现数据加密的安全性和高效性。
74.下面结合图1

图11描述本发明提供的一种数据加解密方法、装置、电子设备及存储介质。
75.图1是本发明提供的数据加密方法的流程示意图,如图所示。一种数据加密方法,包括在客户端执行数据加密步骤,所述数据加密步骤包括:
76.步骤101,随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥。
77.可选的,所述第一密钥是在在客户端每次发起请求前,使用对称加密算法aes随机生成的,并缓存在客户端已被后续加密数据调用。
78.可选的,所述第二密钥是预先由服务器端生成并存储在服务器端。
79.可选的,所述第二密钥是由服务器端使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥。
80.步骤102,使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端。
81.图2是本发明提供的数据解密方法的流程示意图,如图所示。一种数据解密方法,包括在服务器端执行数据解密步骤,所述数据解密步骤包括:
82.步骤201,使用第二密钥对第三密钥进行解密,得到第一密钥。
83.步骤202,使用所述第一密钥对第一被加密数据进行解密,得到需加密数据。
84.其中,所述第二密钥是预先在服务器端生成的,所述第一密钥是在客户端发起请求前随机生成的,所述第三密钥是使用所述第二密钥对所述第一密钥进行加密获得的,所述第一被加密数据是使用所述第一密钥对所需加密数据进行加密获得的。
85.可选的,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;
86.所述第一密钥是使用对称加密算法aes随机生成的。
87.图3是本发明提供的数据加解密方法的流程示意图,如图所示。一种数据加解密方法,包括在客户端执行数据加密步骤310和/或在服务器端执行数据解密步骤320,其中,
88.所述数据加密步骤310,包括:
89.步骤311,随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥。
90.步骤312,使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端。
91.所述数据解密步骤320,包括:
92.步骤321,使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥。
93.步骤322,使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据。
94.本发明上述所述数据加解密方法,数据传输中的第二密钥是存在服务器端,第一密钥是由客户端每次发起请求时生成的,每个客户端不同,并且所述第一密钥在客户端每次发起请求时都会随机变化,所以提高了数据传输的安全性。
95.上述步骤是针对客户端发起请求时的数据传输,所述数据传输包括两部分,一部分为实际传输的数据,使用第一密钥进行加密后生成第一加密数据;另一部分为第三密钥,所述第三密钥是使用第二密钥对第一密钥进行加密后生成的。
96.以下针对本发明上述各步骤进行描述。
97.图4是本发明提供的响应数据处理的流程示意图,如图所示。执行所述使用所述第一密钥对所述被加密数据进行解密,得到所述需加密数据之后,包括:
98.步骤401,服务器端对客户端发起的请求数据进行处理,并将处理后的响应数据使用所述第一密钥进行加密,得到第二被加密数据。
99.步骤402,将所述第二被加密数据返回给客户端,并由客户端使用所述第一密钥对所述被第二被加密数据进行解密。
100.上述步骤是对服务器对客户端发起请求所返回的响应数据的数据传输,所述数据传输只包括第二被加密数据,所述第二被加密数据是使用所述第一密钥进行加密的,由于所述第一密钥是客户端随机生成的,并不存储在服务器端,所以每次返回的响应数据的加密密钥都不相同,提高了数据传输的安全性。
101.图5是本发明提供的生成rsa公钥的流程示意图,如图所示。执行所述随机生成第一密钥的步骤之前,包括:
102.步骤501,由服务器端生成所述第二密钥。
103.可选的,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥。
104.rsa(rsaalgorithm)加密算法由以下五部分构成:
105.(1)原文(message):需要加密的信息,可以是数字、文字、视频、音频等,用m表示。
106.(2)密文(ciphertext):加密后得到的信息,用c表示。
107.(3)公钥(public key)和私钥(private key),用pu和pr表示。
108.(4)加密算法(encryption):若e(x)为加密算法,加密过程可以理解为c=e(m),根据原文和加密算法得到密文。
109.(5)解密算法(decryption):若d(x)为解密算法,解密过程可以理解为m=d(c),根据密文和解密算法得到原文。
110.假设客户端与服务器端要进行加密通信,那么rsa进行加密和解密信息的步骤如下:
111.第一,随机选择两个不相同的素数p、q。
112.第二,将p、q相乘,记为n=p*q。
113.第三,计算n的欧拉函数ψ(n),欧拉函数证明,当p、q为不相同的素数时,ψ(n)=(p

1)*(q

1)。
114.第四,随机选择一个整数e,满足两个条件:ψ(n)与e互质,且1<e<ψ(n)。
115.第五,计算e对于ψ(n)的模反元素d,也就是说找到一个d满足ed=1modψ(n)。这个式子等价于ed

1=kψ(n),实际上就是对于方程ed

kψ(n)=1求(d,k)的整数解。这个方程可以用扩展欧几里得算法求解。
116.第六,最终把(e,n)封装成公钥,(d,n)封装成私钥。
117.可选的,本发明实施例可采用非对称加密算法rsa

2048,rsa

2048具有617个十进制数字,共2048bits,是目前最大的rsa数字。
118.图6是本发明提供的rsa加解密的示意图,如图所示。发送方
119.将明文p通过rsa加密函数使用公钥进行加密,得到密文c。接收方通过rsa解密函数使用私钥进行解密,得到明文p。
120.步骤502,将所述第二密钥存储在服务器端。
121.图7是本发明提供的生成aes密钥的流程示意图,如图所示,所述随机生成第一密钥,包括:
122.步骤601,在客户端每次发起请求前使用对称加密算法aes随机生成所述第一密钥。
123.aes(英文:advanced encryption standard,中文:高级加密标准),对称加密算法是加密和解密用相同的密码,具体的加解密流程如图8所示:
124.(1)发送方:
125.通过aes加密函数将明文p和密钥k进行加密后,得到密文c进行网络传输。
126.(2)接收方:
127.通过aes解密函数将接收到密文c通过密钥k进行解密后,得到明文p。
128.其中,明文p是指没有经过加密的数据。
129.其中,密钥k是用来加密明文的密码,在对称加密算法中,加密和解密是相同的,密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄露,本发明是通过非对称加密算法加密密钥,然后再通过网络传输给对方,或者直接面对面商量密钥。密钥如果发生泄露,会被攻击者还原密文,窃取机密数据。
130.其中,aes加密函数:设aes加密函数为e,则c=e(k,p),其中p为明文,k为密钥,c为密文。也就是说,把明文p和密钥k作为加密函数的参数输入,则加密函数e会输出密文c。
131.其中,密文c是指经加密函数处理后的数据。
132.其中,aes解密函数:设aes解密函数为d,则p=d(k,c),其中c为密文,k为密钥,p为明文。也就是说,把密文c和密钥k作为解密函数的参数输入,则解密函数会输出明文p。
133.aes为分组密码,分组密码也就是把明文分成一组一组的,每组长度相等,每次加密一组数据,直到加密完整个明文。在aes标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,加密轮数也不同,比如aes

128,密钥的长度为128位,加密轮数为10轮;aes

256,密钥长度为128,加密轮数为14。
134.需要说明的是,对称加密算法的加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合经常发送数据的场合,缺点是密钥的传输比较麻烦。而非对称加密算法的加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,所以通常加密解密的速度比较慢,适合偶尔发送数据的场合,优点是密钥传输方便。
135.本发明所述数据加解密方法是采用对称加密算法和非对称加密算法组合的方式进行加密的,即通过非对称rsa算法加密对称aes算法的密钥,传输到接收方,接收方解密得到aes密钥,然后发送方和接收方用aes密钥来通信。
136.可选的,在数据传输中,为保证数据的完整性和安全性,本发明采用非对称rsa

2048算法和对称aes

256算法组合使用,包括如下步骤:
137.第一,生成随机aes

256key。
138.第二,计算文件明文的sha

256摘要。
139.第三,使用aes

256对文件进行加密。
140.第四,对加密后的文件进行前置操作。包括:(1)用接收方的rsa

2048公钥对aes

256key进行加密,保证仅有指定的接收方才能恢复相应的aes

256key;(2)sha

256摘要,接收方可用于判断确认所接收解密的文件是正确的。
141.步骤702,将所述第一密钥缓存在客户端,以便对服务器端返回的响应数据进行解密。
142.图9是本发明提供的数据加解密方法的时序图,如图所示。所述数据加解密方法,包括:
143.步骤1,客户端向服务器端请求从服务器端获取rsa公钥,所述rsa公钥是由服务器端预先生成并保存在服务器端的。
144.步骤2,服务器端向客户端返回rsa公钥,客户端接收到服务器端发来的rsa公钥,并将所述rsa公钥进行暂时保存,以被后续加密时调用。
145.步骤3,客户端在每次发起请求时,随机生成一组aes密钥,并暂时保存在客户端以被后续解密步骤调用。
146.步骤4,客户端使用rsa公钥加密aes密钥,得到密钥encryptedkey。
147.步骤5,客户端使用aes密钥加密传输的数据,得到第一被加密数据encrypteddata1。
148.可选的,上述步骤4和步骤5的顺序可调换,不影响本发明所述数据加解密方法的实现。
149.步骤6,客户端将密钥encryptedkey和第一被加密数据encrypteddata1按照约定好的格式一起发送至服务器端。
150.步骤7,服务器端接收到密钥encryptedkey和第一被加密数据encrypteddata1后,服务器端使用rsa私钥对密钥encryptedkey进行解密,得到aes密钥。
151.步骤8,服务器端使用步骤7中的aes密钥对第一被加密数据encrypteddata1进行解密,得到明文数据。
152.步骤9,服务器端处理完客户端发来的请求书后,对返回客户端的响应数据使用步骤7的aes密钥进行加密得到第二被加密数据encrypteddata2。
153.步骤10,服务器端将第二被加密数据encrypteddata2返回给客户端。
154.步骤11,客户端对接收到服务器端返回的第二被加密数据encrypteddata2使用上述步骤3生成的aes密钥进行解密。
155.本次客户端与服务器端的交互请求结束,当客户端下一次向服务器端发起请求时,重复执行上述步骤3~步骤11。
156.由此可知,本发明所述数据加解密方法,在客户端不存储加密密钥,而是每次发起请求时随机生成的,并且使用对称加密算法和非对称加密算法相结合的方式,兼顾数据加密的性能和数据传输的安全性。
157.下面对本发明提供的数据加解密装置进行描述,下文描述的数据加解密装置与上文描述的数据加解密方法可相互对应参照。
158.图10是本发明提供的数据加解密装置的结构示意图,如图所示。一种数据加解密装置1000,包括在客户端执行数据加密步骤的加密模块1010和/或在服务器端执行数据解密步骤的解密模块1020,其中,
159.加密模块1010,用于随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥,并使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端。
160.解密模块1020,用于使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥,并使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据;
161.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
162.可选的,上述所述数据加解密装置1000还包括加解密模块1030和第二密钥生成模块1040。
163.加解密模块1030,用于对客户端发起的请求数据进行处理,并将处理后的响应数据使用所述第一密钥进行加密,得到第二被加密数据,并将所述第二被加密数据返回给客户端,并使用所述第一密钥对所述被第二被加密数据进行解密。
164.第二密钥生成模块1040,用于在服务器端生成所述第二密钥,并将所述第二密钥存储在服务器端。
165.基于本发明的另一实施例,本发明提供一种数据加密装置,包括在客户端执行数据加密步骤的加密模块,所述加密模块用于随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥,并使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
166.可选的,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;所述第一密钥是使用对称加密算法aes随机生成的。
167.基于本发明的另一实施例,本发明提供一种数据解密装置,包括在服务器端执行数据解密步骤的解密模块,所述解密模块用于使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥,并使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据;
168.其中,所述第二密钥是预先在服务器端生成的,所述第一密钥是在客户端发起请求前随机生成的,所述第三密钥是使用所述第二密钥对所述第一密钥进行加密获得的,所述第一被加密数据是使用所述第一密钥对所需加密数据进行加密获得的;
169.其中,所述第一密钥是使用对称加密算法生成,所述第二密钥是使用非对称加密算法生成。
170.可选的,所述第二密钥是使用非对称加密算法rsa生成的,所述第二密钥包括用于加密的公钥和用于解密的私钥;所述第一密钥是使用对称加密算法aes随机生成的。
171.以下通过一应用实施例提供的实验数据对本发明所述数据加解密方法进行描述:
172.实施例:
173.(1)在服务端生成rsa

2048密钥,所述密钥包括rsa公钥和rsa私钥,其中:
174.rsa公钥:
175.miibijanbgkqhkig9w0baqefaaocaq8amiibcgkcaqea6pxi9wbn3shvktxs2fiv/tqouwlhxgsmqnsqlfohsk//rj8bx/yuerm5saukwoexxahxhhmlmatmdbfasaivh vleskk4dhnumffv153pxo0ye9y70mwnpjpwrxwuvwxre2kvjbwxajsarptn9ntwfn6o3rkgy4tpr3xnflauti5orzkddywcyvker47p9lwgtd9bomqvgw80/ ggba7u25nxrzhiqfpz/dv l9r 083553qgjxytvrrodldj7pn9rsn bjto1zl3wwm7i2qqioecbgz 0x7z7lza4qbmtauq9cvcbavzbgt0zqff508l5cr9p9hy59h6tynls3mqidaqab。
176.rsa私钥:
177.miievwibadanbgkqhkig9w0baqefaascbkkwggslageaaoibaqdqlel1zufeyfuppflz k/9oo67aufcziyo2yquu6fir/9gpwhh/k56ublic4py4rddodceewsxpmx0f9piai8f768srkqrh0c26z99xxnc9ejrgt1jvqza2mm/ctdzs9bgt7yq nvdealjpe9of2dpb83o7eusdlhm vfgd uc5mjk5hmp0nhzxi qrhjs/2xazmp0e6zc8zbzt/6azsdttbk3fhogkou9n8nx6x2v7tzfnneoanfk1wtgh2v2ps832uw34elojvmxfdazsjzbci4qjsbp7thvpuvkdioey0c6r0jvxsc9kea3toov/ntwvlxh0/0fln0fppkevlezagmbaaecggebajbq0avjp3abdfmn91h9c9d3tom77gsovxgkbpf/wzocipgwpypg4x5cz8eqwfxx1eyyeh1b/fr2hyloo01depxnghldyto2l4ukwkgfxh63chmhrqebzsmmfzrrepxiecmatglnu/uo4ofze6ixhf80t rio6/f/2nsy45hqc3uyg41yxwyiltwxsxjlk1pcr1z3xehozequ mzye5nugorr vqdhpggjcsktynzcjxgsysk4fgdwpmopj2zz13nzzvhzxonvenq3psg0pprirvf5 y/puw0ga8vrrhwd2sh18bd s0tquyst6mwhqx iculqxojpsmjb1jlxvi7kcgyea f1ukhwafnrcahccsz3xfubkcpejbuog6/vkpq9jv yz4ubfnyd6nw4jcahij5crpoxelwhhlly8dp6ixddkxl81cw/tpnfirqe/8ih90d9ztnlzfaw5bjkujdmfqfpsw3ch1aabtuu6thuxlvb8yvihgdgqofxdk pyjn4g9vscgyea8cwc1i0c8e1ambtigybv2eyqresee06c2gg4zmtv58lk0y4ejlmid71gwmgxhieq4nz4urqo8yhuryj2mcf dr7ijycufoeuwoe5mhctzftaxxuzmu8tvxgw3s1jzgq/dv5vfp3wmd3b3ozzt4x74kq5infvtmeiuq phhrdnrscgyeaxt/svog0zcw9gndcgig9/nqumnmp6pvx hrfymbcmst9mccup0dqcte0agtsnwyeeb kcr3cdvaz h5dztgcnw ofps/qe5rmrekawgr/o zkditpbyjayxul45dlmy0lzw66jpqowpergpp672i
v3blpjzhxnfwy80twua/3scgyeaj3yvvdqga30qlveu 6x8skgjgne2pqp6ckqx6xh91wb5vco41xtrniij/avp9efq8dvp/dpqcor8nigshukh5dxtzwkf4ty3ttdsizvpnwr3jsqpqqfai4kpi ii6gwdvu1e8maqvocb xz9qpux8z2sizch22/euiiebfwsoskcgyafmq4dxupzdm1xhzq5bztw5/50ugzmvy9z/d0kojsposmqtixiugqgzh29rxe3u1kranqg19ruli/5dfp1nedj5bx7c7os4lppzzzxujzjurril2vipxlrbw2k5vqj0qadgecqgl3dmfnojefgaeeeds0lsoh7jmkonbah8y2q6q==。
178.(2)在客户端生成aes

128密钥:/vwrlouo46m5ldbgjljolq==。
179.(3)在客户端使用ras公钥对上述aes密钥加密得到encryptedkey:
180.lritu rvozlvgfpf3t3pdyc8 dnjcl nox5kv3u/l3b52sombdwstqxno751mox6hanwzcsxq0ynawshlkavqcsemjjqwzemxvpvryq7mw/9griyg 8rorehndrvaq3b7xgtjnogrq85tfkpkisprmlgjs7qlogiv/hlv3f/8o49x otdxyylcd57osxn5lmhlwttn8katkqhehe9sxk9e77k0cjaxqz0v0wg5nc/mwt8nscs9k9u89jxf3cjrfziyfvrmb7xgs2wforfmghcq udffi6xcnif86p1wwdsxgrzpjsojzzia9o541nctbrb6s6zcjocpwk0cmowj1sw==。
181.(4)在客户端使用aes密钥对请求数据加密得到encrypteddata1。其中,请求数据:username=zhangsan&password=123456;
182.encrypteddata1:
183.0yzpxqql8vkson53/dth07hdcj6f9x7xyqjsidetb9ew4v5bxtujlinw6g/rfvj1。
184.(5)在服务端使用rsa私钥对encryptedkey解密得到aes密钥:/vwrlouo46m5ldbgjljolq==。
185.(6)服务端使用aes密钥对encrypteddata1解密得到请求数据:username=zhangsan&password=123456。
186.(7)服务端使用aes密钥对响应数据加密得到encrypteddata2。
187.其中,响应数据:success,那么加密后的encrypteddata2:pqxw9v25ospjx6btck2b6w==。
188.(8)客户端使用aes密钥对encrypteddata2解密得到响应数据,所述响应数据的明文:success。
189.通过上述实施例可知,本发明采用对称加密算法和非对称加密算法相结合的方式,并且数据传输的加密密钥是通过客户端运行时随机产生的,实现数据加密的安全性和高效性。
190.图11示例了一种电子设备的实体结构示意图,如图11所示,该电子设备可以包括:处理器(processor)1110、通信接口(communications interface)1120、存储器(memory)1130和通信总线1140,其中,处理器1110,通信接口1120,存储器1130通过通信总线1140完成相互间的通信。处理器1110可以调用存储器1130中的逻辑指令,以执行数据加解密方法的步骤,所述数据加解密方法包括在客户端执行数据加密步骤和/或在服务器端执行数据解密步骤,其中,
191.所述数据加密步骤,包括:
192.随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥;
193.使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
194.所述数据解密步骤,包括:
195.使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥;
196.使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据。
197.此外,上述的存储器1130中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
198.另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述所提供的数据加解密方法的步骤,所述数据加解密方法包括在客户端执行数据加密步骤和/或在服务器端执行数据解密步骤,其中,
199.所述数据加密步骤,包括:
200.随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥;
201.使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
202.所述数据解密步骤,包括:
203.使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥;
204.使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据。
205.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的上述所提供的数据加解密方法的步骤,所述数据加解密方法包括在客户端执行数据加密步骤和/或在服务器端执行数据解密步骤,其中,
206.所述数据加密步骤,包括:
207.随机生成第一密钥,并将预先获取到服务器端的第二密钥对所述第一密钥进行加密,得到第三密钥;
208.使用所述第一密钥对需加密数据进行加密,得到第一被加密数据,并将所述第一被加密数据和所述第三密钥传输至服务器端;
209.所述数据解密步骤,包括:
210.使用所述第二密钥对所述第三密钥进行解密,得到所述第一密钥;
211.使用所述第一密钥对所述第一被加密数据进行解密,得到所述需加密数据。
212.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性
的劳动的情况下,即可以理解并实施。
213.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
214.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献