数据加密方法、装置、数据解密方法、装置及介质与流程

文档序号:31562548发布日期:2022-09-20 17:34阅读:49来源:国知局
数据加密方法、装置、数据解密方法、装置及介质与流程

1.本技术涉及数据安全领域,特别是涉及一种数据加密方法、装置、数据解密方法、装置及计算机存储介质。


背景技术:

2.目前,云平台的应用越来越广泛,有越来越多的云服务厂商提供全套解决方案。
3.当需要使用云平台的相关功能时,云平台需要获取用户账户等用户数据,但这也给数据安全性提出了新的挑战。
4.相关技术中,当一平台提供用户数据给第三方的云平台时,对于用户数据的传输和存储,要么安全性差,要么可用性差,无法兼顾用户数据的安全性和可用性。


技术实现要素:

5.本技术提供一种数据加密方法、数据加密装置、数据解密方法、数据解密装置及计算机存储介质,以解决相关技术中无法保障用户数据安全性和可用性的技术问题。
6.为解决上述技术问题,本技术提供一种数据加密方法。该方法包括:第一平台分别获取至少两个用户设定的鉴权密钥;所述第一平台基于所述第一平台的平台密钥和所述鉴权密钥,计算得到与每个用户对应的加密密钥;所述第一平台利用所述加密密钥对相应用户的用户数据的至少部分字段进行加密,得到相应用户的加密数据;所述第一平台将所述平台密钥和至少部分用户对应的至少部分所述加密数据发送到第二平台,以使所述第二平台能够在获取到用户提供的所述鉴权密钥后,基于所述鉴权密钥和所述平台密钥得到与所述加密密钥对应的解密密钥,并利用所述解密密钥解密相应用户的所述加密数据。
7.为解决上述技术问题,本技术提供一种数据解密方法。该方法包括:第二平台接收第一平台发送的所述第一平台的平台密钥和多个用户的加密数据;所述第二平台接收第一用户发送的鉴权密钥;所述第二平台基于所述鉴权密钥和所述平台密钥,计算得到与所述第一用户对应的解密密钥;所述第二平台利用所述解密密钥解密所述第一用户对应的所述加密数据。
8.为解决上述技术问题,本技术提供一种数据加密装置。该装置包括处理器、存储器和通信电路,所述处理器耦接所述存储器、通信电路,在工作时执行指令,以配合所述存储器、通信电路实现上述的数据加密方法。
9.为解决上述技术问题,本技术提供一种数据解密装置。该装置包括处理器、存储器和通信电路,所述处理器耦接所述存储器、通信电路,在工作时执行指令,以配合所述存储器、通信电路实现上述的数据解密方法。
10.为解决上述技术问题,本技术提供一种计算机存储介质。计算机存储介质存储有计算机程序,所述计算机程序被服务器执行以实现上述的数据加密方法的步骤,或上述的数据解密方法的步骤。
11.本技术通过分别获取每一用户的鉴权密钥,利用鉴权密钥和平台密钥生成该用户
对应的加密密钥,以提高加密密钥的安全性,使得每一用户具有其对应的专用密钥。并且,使用加密密钥加密相应用户的用户数据,使得每个用户的用户数据能够被差异化加密,即使第二平台获取到一个用户的鉴权密钥,只能解密该用户的用户数据,从而能够保证第一平台其他用户数据的安全性。进一步地,第一平台将平台密钥和至少部分用户对应的至少部分加密数据发送到第二平台,第二平台在需要使用用户数据时,无需与第一平台进行通信,如此在确保用户数据安全的同时,还能够保证第二平台获取用户数据的可用性。
附图说明
12.图1是本技术提供的一种数据加密方法第一实施例的流程示意图;
13.图2是本技术提供的一种数据解密方法第一实施例的流程示意图;
14.图3是本技术提供的数据加密装置一实施例的结构示意图;
15.图4是本技术提供的数据解密装置一实施例的结构示意图;
16.图5是本技术提供的计算机存储介质一实施例的结构示意图。
具体实施方式
17.为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本技术所提供的数据加密方法、数据加密装置、数据解密方法、数据解密装置及计算机存储介质做进一步详细描述。
18.请参阅图1,图1是本技术提供的一种数据加密方法第一实施例的流程示意图,本实施例包括如下步骤:
19.s110:第一平台分别获取至少两个用户设定的鉴权密钥。
20.第一平台获取每一用户设定的鉴权密钥,鉴权密钥私人化,多个用户之间的鉴权密钥不尽相同。
21.鉴权密钥可以是用户输入的一串字符,也可以是用户选择的该用户对应的用户数据中的某一字段。
22.举例说明,请参阅表1,表1是第一平台存储的用户数据。其中,用户名、姓名、密码、身份证号和手机号等为字段名。字段名所在的列为字段。每一用户对应的用户数据可以包括多个字段。
23.表1.用户数据
24.用户名姓名
……
密码身份证号手机号
…………ꢀꢀꢀꢀꢀꢀ
zhangsan张三 zs23$%44044019771010555513822665555 lisi李四 si44&*32037019860404666613745456767
ꢀ……ꢀꢀꢀꢀꢀꢀ
25.第一平台分别接收各个用户的鉴权密钥设定指令,鉴权密钥设定指令包括各个用户从多个字段名中选择的目标字段名。响应鉴权密钥设定指令,第一平台将相应用户的用户数据中的目标字段名对应的字段作为鉴权密钥。通过将用户数据中的某一字段设为鉴权密钥,一方面可以减少用户输入操作、方便用户记忆,另一方面可以减少数据的存储量。当然,可用于作为鉴权密钥的字段可以是将被加密的字段,以降低鉴权密钥泄露的风险。例
如,将被加密的字段有密码、身份证和手机号,用户名和姓名是不会被加密的明文字段,目标字段名可以从密码、身份证和手机号中选择,而用户名和姓名则不提供给用户选择。
26.用户通过智能手机、电脑等用户终端登录或注册第一平台的用户账户时,用户终端界面提示用户从多个字段名中选择某一字段名,以将该字段名对应的字段作为鉴权密钥。用户通过触摸、按压、语音或鼠标点击选中界面上的预定位置对应的字段名,选择用于作为鉴权密钥的字段。例如,用户zhangsan选中“密码”作为鉴权密钥,即zs23$%作为鉴权密钥,用户lisi选中“身份证号”作为鉴权密钥,即320370198604046666作为鉴权密钥。由于每个用户所选择的字段不尽相同,并且该用户的字段与其自身的信息有关,因此一般情况下,每个用户对应的鉴权密钥与其他用户的鉴权密钥不同。
27.s120:第一平台基于第一平台的平台密钥和鉴权密钥,计算得到与每个用户对应的加密密钥。
28.为了提高用户数据的安全性,降低因其他平台泄露与鉴权密钥相同的数据而导致撞库攻击的风险,本技术还利用第一平台的平台密钥与鉴权密钥进行计算,得到与每个用户对应的加密密钥。
29.具体而言,第一平台利用预设算法分别对平台密钥和鉴权密钥进行运算,得到与每个用户对应的加密密钥。
30.其中,预设算法包括拼接算法、异或算法或摘要算法等。使用拼接算法计算加密密钥计算量小,可以减轻第一平台的运算负担。由于摘要算法计算得到的结果不可逆,因此使用摘要算法计算加密密钥可以提高加密密钥的安全性。
31.例如,平台密钥是hyteratencent2020,用户zhangsan的鉴权密钥是zs23$%,以预设算法是拼接算法为例,zhangsan的加密密钥则是hyteratencent2020zs23$%。用户lisi的鉴权密钥是320370198604046666,同样以预设算法是拼接算法为例,lisi的加密密钥则是hyteratencent2020320370198604046666。
32.由于每个用户的加密密钥是基于鉴权密钥生成的,因此,每个用户对应的加密密钥也不相同。
33.s130:第一平台利用加密密钥对相应用户的用户数据的至少部分字段进行加密,得到相应用户的加密数据。
34.第一平台生成一用户的加密密钥后,利用该加密密钥对该用户的用户数据进行加密。
35.被加密的字段可以是涉及用户隐私的字段,例如用户姓名、身份证号、电话号码、家庭住址等;也可以除用户唯一标识以外的其他所有字段,例如表1中除用户名以外的其他字段。用户唯一标识用于在用户使用用户终端发起登录、查询、上传或下载等请求时匹配用户数据,因此用户唯一标识可以不被加密。
36.s140:第一平台将平台密钥和至少部分用户对应的至少部分加密数据发送到第二平台,以使第二平台能够在获取到用户提供的鉴权密钥后,基于鉴权密钥和平台密钥得到与加密密钥对应的解密密钥,并利用解密密钥解密相应用户的加密数据。
37.第一平台得到用户的加密数据后,将包括平台密钥和至少部分用户的至少部分加密数据等的数据发送到第二平台。
38.将加密后的用户数据发送到第二平台,可以保证用户数据在传输和在第二平台存
储的过程中更加安全。
39.表2.发送到第二平台的用户数据
40.用户名姓名
……
密码身份证号手机号
…………ꢀꢀꢀꢀꢀꢀ
zhangsan%#!% zs23$%*%^$#6%#$@5432%$^$*^($@#%$ lisig5ds% g3w9*gr%$fryyu$ds()*&4%#sduqpcd5
ꢀ……ꢀꢀꢀꢀꢀꢀ
41.第二平台在获取上述的数据后,需要从用户那里获取鉴权密钥,方可基于鉴权密钥和平台密钥计算得到解密密钥,进而能够使用的解密密钥解密对应用户的加密数据得到明文的用户数据。
42.本实施例中,加密数据可以是对称加密得到的,该情况下加密密钥和解密密钥相同。
43.具体地,第一平台向第二平台发送的数据还可以包括上述的预设算法。第一用户在需要登录第二平台或使用第二平台相关功能时,向第二平台发送携带有鉴权密钥的请求消息。从而,第二平台能够使用预设算法对平台密钥和鉴权密钥进行运算,得到与加密密钥相同的解密密钥。第二平台使用解密密钥对第一用户的加密数据进行解密,得到第一用户的明文用户数据。
44.由于每一用户的鉴权密钥不同,第二平台即使获得了平台密钥和某一用户的鉴权密钥,也仅能计算得到该用户的解密密钥,无法基于该用户的鉴权密钥计算得出其他用户的解密密钥。也就是说,只有在用户授权的情况下(向第二平台发送自己的鉴权密钥),第二平台才能够解密该用户的加密数据;在用户未授权的情况下,第二平台无法解密该用户的加密数据。如此,能够保证用户数据的安全性,降低用户数据泄露的风险。
45.当然,加密数据也可以是非对称加密得到的。例如,第一平台基于平台密钥和鉴权密钥生成一对公私密钥,公钥作为加密密钥对用户数据进行加密,私钥分别交由用户数据对应的用户进行保存。当第一用户在需要登录第二平台或使用第二平台相关功能时,使用用户终端向第二平台发送携带有私钥的请求消息。第二平台使用私钥解密该第一用户的加密数据,得到该第一用户明文状态的用户数据。
46.第一平台将平台密钥和至少部分用户对应的至少部分加密数据发送到第二平台,第二平台在需要使用用户数据时,无需与第一平台进行通信,不受网络抖动、第一平台故障等因素的影响,如此能够保证第二平台获取用户数据的可用性。也即,在第一平台向第二平台提供多个用户数据以确保可用性的前提下,同时能够让第二平台仅能解密其中向第二平台发送鉴权密钥的用户对应的用户数据,降低未经用户授权的情况下用户数据泄露的风险,从而提高用户数据的安全性。
47.请参阅图2,图2是本技术提供的一种数据解密方法第一实施例的流程示意图,本实施例包括如下步骤:
48.s210:第二平台接收第一平台发送的第一平台的平台密钥和多个用户的加密数据。
49.s220:第二平台接收第一用户发送的鉴权密钥。
50.s230:第二平台基于鉴权密钥和平台密钥,计算得到与第一用户对应的解密密钥。
51.s240:第二平台利用解密密钥解密第一用户对应的加密数据。
52.本实施例的s210~s240相关内容以在s140中进行了详细描述,故在此不再赘述。
53.本技术还提供一种数据加密装置用于实现上述数据加密方法,具体请参阅3,图3是本技术提供的数据加密装置一实施例的结构示意图。
54.本实施例的数据加密装置300可以是服务器、数据库等。其中,数据加密装置300包括处理器301、存储器302和通信电路303,处理器301耦接显示屏302和通信电路303。
55.其中,通信电路303用于获取至少两个用户设定的鉴权密钥;存储器302存储鉴权密钥、平台密钥和用户数据;处理器301用于基于第一平台的平台密钥和鉴权密钥,计算得到与每个用户对应的加密密钥,并利用加密密钥对相应用户的用户数据的至少部分字段进行加密,得到相应用户的加密数据。通信电路303还用于将平台密钥和至少部分用户对应的至少部分加密数据发送到第二平台,以使第二平台能够在获取到用户提供的鉴权密钥后,基于鉴权密钥和平台密钥得到与加密密钥对应的解密密钥,并利用解密密钥解密相应用户的加密数据。
56.处理器301可以是一种集成电路芯片,具有信号的处理能力。处理器301还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
57.本技术还提供一种数据解密装置用于实现上述数据解密方法,具体请参阅图4,图4是本技术提供的数据解密装置一实施例的结构示意图。在该实施例中,该数据解密装置400包括处理器401、存储器402和通信电路403,处理器401耦接存储器402和通信电路403。
58.其中,通信电路403用于接收第一平台发送的第一平台的平台密钥和多个用户的加密数据,以及接收第一用户发送的鉴权密钥;存储器402用于存储第一平台的平台密钥和多个用户的加密数据,以及接收第一用户发送的鉴权密钥;处理器401用于基于鉴权密钥和平台密钥,计算得到与第一用户对应的解密密钥,并利用解密密钥解密第一用户对应的加密数据。
59.处理器401可以是一种集成电路芯片,具有信号的处理能力。处理器401还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
60.对于上述实施例的方法,其可以计算机程序的形式存在,因而本技术提出一种计算机存储介质,请参阅图5,图5是本技术提供的计算机存储介质一实施例的结构示意图。本实施例计算机存储介质500中存储有计算机程序501,其可被执行以实现上述实施例中的方法。
61.本实施例计算机存储介质200可以是u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等可以存储程序指令的介质,或者也可以为存储有该程序指令的服务器,该服务器可将存储的程序指令发送给其他设备运行,或者也可以自运行该存储的程序指令。
62.在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划
分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
63.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
64.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
65.集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
66.以上所述仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1