处理加密表单的方法、服务器和计算机可读介质与流程

文档序号:25310230发布日期:2021-06-04 15:29阅读:90来源:国知局
处理加密表单的方法、服务器和计算机可读介质与流程

1.本申请主要涉及数据处理技术领域,尤其涉及一种处理加密表单的方法、服务器和计算机可读介质。


背景技术:

2.在相关法律法规的要求下,部分用户数据需要进行加密处理,以防止信息泄漏。除了按需定制的人工编码加密,还可以结合用户的登录信息及其它用户相关信息来进行加密。
3.例如在一些saas(software

as

a

service,软件即服务)场景下,用户需要保证自己的数据是加密的,并且不能被应用提供方或任何其它可获取数据的人直接读取的。现有的方法大部分是通过数据库权限、内网权限等相关手段进行控制,或者是开发人员在开发过程中通过固定的加密算法进行加密保存。
4.在开发人员使用固定加密算法进行加密的情景下,在将数据存入数据库之前,开发人员需要先对数据进行加密操作。开发人员需要针对各个不同的场景,逐一手动编写加解密代码,并需要分别在所有进行数据新增、修改、查询或插入的地方进行加解密操作,开发人员工作量大,数据加密的实现成本高。并且在实际工作中,上述传统的手动编写加密代码的方式极其可能出现漏写或者错写代码的状况,极大地影响了数据加密的可靠性。
5.因此,如何降低数据加密的开发成本以及提高数据加密的可靠性是本领域技术人员亟需解决的问题。


技术实现要素:

6.本申请要解决的技术问题是提供一种处理加密表单的方法、服务器和计算机可读介质,能够降低数据加密的开发成本以及提高数据加密的可靠性。
7.为解决上述技术问题,本申请提供了一种处理加密表单的方法,包括:接收调用方发起的处理表单请求,所述处理表单请求为保存表单请求或查询表单请求,所述表单保存于数据库中;根据与所述表单所对应的预设的加密配置文件获取所述表单所对应的加密信息,所述加密信息包括所述表单所对应的密钥的获取方式和所述表单所对应的加密算法,所述加密配置文件用于预先对上下文进行设置以使所述上下文包括所述密钥的密钥组成信息;基于所述密钥的获取方式在所述上下文中获取所述密钥的密钥组成信息,并根据所述密钥组成信息得到所述密钥;当所述处理表单请求为所述保存表单请求时,基于所述保存表单请求、所述密钥和所述加密算法对所述保存表单请求中的数据进行加密并存入所述表单;以及当所述处理表单请求为所述查询表单请求时,基于所述查询表单请求、所述密钥和所述加密算法对所述表单进行解密并返回给所述调用方。
8.在本申请的一实施例中,所述密钥组成信息包括以下的任意一项或多项:用户密码、用户标识、预设的定值、用户所属的租户所使用的密钥以及用户所属的项目所使用的密钥。
9.在本申请的一实施例中,当所述密钥组成信息包括所述用户密码时,若所述用户密码被修改,则将所述数据库中所有使用所述密钥加密的表单使用基于旧用户密码的旧密钥进行解密,然后使用基于新用户密码的新密钥进行加密。
10.在本申请的一实施例中,当所述密钥组成信息包括所述用户密码时,所述用户密码是从用户会话中获取。
11.在本申请的一实施例中,在所述根据预设的加密配置文件获取所述表单所对应的加密信息的步骤前,还包括:确认所述表单有与所述表单所对应的预设的加密配置文件。
12.在本申请的一实施例中,所述加密信息还包括所述表单所对应的盐的获取方式。
13.在本申请的一实施例中,所述密钥组成信息还包括所述盐。
14.在本申请的一实施例中,所述方法由orm框架执行。
15.为解决上述技术问题,本申请提供了一种服务器,用于处理加密表单,所述服务器包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如上所述的方法。
16.为解决上述技术问题,本申请提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的方法。
17.与现有技术相比,本申请的处理加密表单的方法、服务器和计算机可读介质通过加密配置文件获取加密信息和预先设置上下文使其包含密钥组成信息,然后通过上下文获取密钥组成信息得到密钥,实现了自动通过加密配置文件进行加密或解密,无需人工编写加解密代码,避免了人工编写的遗漏或者错误,极大地降低了数据加密的开发成本以及提高数据加密的可靠性。
附图说明
18.包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本申请原理的作用。附图中:
19.图1是根据本申请一实施例示出的一种数据管理系统的结构示意图。
20.图2是根据本申请一实施例示出的处理加密表单方法的示意流程图。
21.图3是根据本申请一实施例示出的服务器的示意框图。
具体实施方式
22.为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
23.如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
24.除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表
达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
25.本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
26.本申请的处理加密表单方法、服务器和计算机可读介质可用于saas(software

as

a

service,软件即服务)场景。在saas业务场景中,在一台或一组服务器上运行的saas系统可以为多个用户提供服务,多个用户可以在互联网环境下使用同一套程序。
27.图1是根据本申请一实施例示出的一种数据管理系统的结构示意图。如图1所示,该数据管理系统包括客户端101、应用服务器102和数据库(database)103,可应用于saas业务场景。
28.数据库103是建立在计算机存储设备上,按照一定数据结构来组织、存储和管理数据的仓库。在本申请实施例中,并不限定承载数据库103的计算机存储设备的实现形式,也不限定数据库103的类型和其采用的数据结构。例如,从数据结构来看,数据库103可以是层次式数据库、网络式数据库或关系式数据库;从存储格式来看,数据库103可以是行式数据库,也可以是列式数据库;从数据库语言来看,数据库103可以是sql数据库,也可以是cassandra数据库等。
29.应用服务器(又称应用程序服务器)102介于客户端101和数据库103之间。通过应用服务器102可建立客户端101与数据库103之间的数据信息的交流。应用服务器102负责接收来自客户端的处理表单请求,并根据该请求对数据库103进行相应的操作。处理表单请求可以为保存表单请求或查询表单请求。
30.客户端101与应用服务器102之间通信连接,该通信连接可以是有线和/或无线网络连接。应用服务器102可同时与多个客户端进行通信连接。可选地,客户端101可以与应用服务器102处于同一局域网内,也可以处于不同局域网内。
31.另外,应用服务器102与数据库103之间也建立通信连接,该通信连接可以是有线或无线网络连接。可选地,在部署实现上,应用服务器102与数据库103可以部署在同一物理设备上实现,也可以部署在不同物理设备上实现。当应用服务器102与数据库103部署在不同物理设备上实现时,两者可以部署同一局域网内,也可以部署在不同局域网内。
32.客户端101可以看作是数据库103面向用户或调用方提供的交互接口,允许用户或调用方通过该客户端101访问数据库103。当用户或调用方需要访问数据库103时,或者,客户端101有数据库访问需求时,客户端101可以向应用服务器102发送数据库访问请求;应用服务器102可以根据该数据库访问请求对数据库103进行相应操作。
33.在一种处理表单至数据库的场景中,客户端101可以向应用服务器102发送处理表单请求。处理表单请求可以为保存表单请求或查询表单请求。应用服务器102根据接收到的
请求对数据库103相应地进行表单保存或表单查询操作。
34.在本申请一实施例中,本申请的处理加密表单方法可以实施在应用服务器上,由运行在应用服务器上的应用服务来执行。应用服务中可以包括orm(object relational mapping,对象关系映射)框架,orm框架可以在应用服务执行线程中进行操作。在本申请一实施例中,本申请的处理加密表单方法可以由orm框架执行。在本申请的一实施例中,orm框架可以为mybatis。
35.图2是根据本申请一实施例示出的处理加密表单方法的示意流程图。
36.如图2所示,该处理加密表单方法包括以下步骤201

206:
37.步骤201,应用服务接收调用方发起的处理表单请求,处理表单请求为保存表单请求或查询表单请求,表单保存于数据库中。调用方可以是通过客户端发起保存表单请求或查询表单请求。保存表单请求是指用户想要将数据保存至数据库的表单中,保存表单请求中携带有要保存的数据。查询表单请求是指用户想要查询数据库中的表单。
38.在本申请的一实施例中,在执行步骤202之前,应用服务还可以先执行步骤206:确认表单有与该表单所对应的预先设置的加密配置文件。应用服务对用户所要保存或查询的表单是否有对应的加密配置文件进行判断。若没有加密配置文件,则认为表单不需要加密或解密;若有加密配置文件,则认为表单需要加密或解密,继续进行下一步骤。在一个示例中,加密配置文件可以为注解。使用注解可以不依赖于第三方库,使用简单直观能够降低开发成本和维护成本,并且类型安全易于检测问题。
39.步骤202,应用服务根据与表单所对应的预设的加密配置文件获取表单所对应的加密信息。加密信息包括表单所对应的密钥的获取方式和表单所对应的加密算法。应用服务能够基于表单所对应的密钥的获取方式获取到该表单所对应的密钥。表单所对应的加密算法是指加密该表单所使用的加密算法。加密配置文件除了用于获取表单所对应的加密信息,还用于预先对上下文进行设置以使上下文包括密钥的密钥组成信息。广义上讲,上下文是指程序运行过程中所能获取的所有信息的统称,会话(session)可以是上下文所包含的信息的一种。加密配置文件预先对上下文进行设置,使得上下文中包括密钥的密钥组成信息,可供应用服务获取。
40.在本申请的一实施例中,密钥组成信息可以包括以下的任意一项或多项:用户密码、用户标识(id)、预设的定值、用户所属的租户所使用的密钥以及用户所属的项目所使用的密钥。也就是说,密钥可以由以上的任意一项或多项组成。其中,用户id可以不是用户登录所使用的用户名,可以是后台为用户生成的唯一id。
41.在本申请的一实施例中,密钥组成信息还可以包括盐(salt),盐是指用于加密的一个n位随机数。在本申请的一实施例中,当密钥组成信息包括盐时,加密信息还可以包括表单所对应的盐的获取方式。应用服务能够基于表单所对应的盐的获取方式获取到用于加密该表单的盐。通过使用盐来作为密钥组成信息,可进一步提高密钥的安全性。
42.步骤203,应用服务基于密钥的获取方式在上下文中获取密钥组成信息,并根据密钥组成信息得到密钥。通过上下文获取密钥组成信息具有更加容易和更加标准化等优点。此外,由于真正的未加密的用户密码只存在于内存中,数据库一般只会保存单向加密的密码,并且反向解密单向加密的密码极其复杂。因此,当密钥组成信息包括用户密码时,数据的安全性更有保证,能进一步提高数据加密的可靠性。
43.在本申请的一实施例中,当密钥组成信息包括用户密码时,用户密码可以是从用户会话中获取。用户密码只在用户进行登录操作后才能被获取。在单机情景下,应用服务可以从用户登录的那台服务器的内存的会话中获取到用户密码。应用服务还可以直接从上下文的用户会话(session)获取到用户密码。
44.在本申请的一实施例中,当密钥组成信息包括用户密码时,用户密码有可能会被用户修改。若作为密钥组成信息的用户密码被修改,则密钥也会相应地变化为基于新用户密码的密钥。因此,应用服务可以先将数据库中所有使用该密钥加密的表单使用基于修改前的旧用户密码的旧密钥进行解密,然后再使用基于新用户密码的新密钥对表单重新进行加密。通过上述操作能够确保表单所使用的密钥是由最新的用户密码组成的。
45.步骤204,当调用方发起的处理表单请求为保存表单请求时,应用服务基于保存表单请求、密钥和加密算法对保存表单请求中所包含的数据进行加密,然后将加密后的数据存入数据库中的表单。
46.步骤205,当调用方发起的处理表单请求为查询表单请求时,应用服务基于查询表单请求、密钥和加密算法对数据库中的表单进行解密,然后将解密后的表单返回给调用方。
47.综上所述,本申请的处理加密表单的方法通过加密配置文件获取加密信息和预先设置上下文使其包含密钥组成信息,然后通过上下文获取密钥组成信息得到密钥,实现了自动通过加密配置文件进行加密或解密,无需人工编写加解密代码,避免了人工编写的遗漏或者错误,极大地降低了数据加密的开发成本以及提高数据加密的可靠性。
48.本申请还提出了一种服务器,用于处理加密表单。服务器包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如上所述的处理加密表单方法。
49.图3是根据本申请一实施例示出的服务器的示意框图。服务器300可包括内部通信总线301、处理器(processor)302、只读存储器(rom)303、随机存取存储器(ram)304、以及通信端口305。当应用在个人计算机上时,服务器300还可以包括硬盘307。内部通信总线301可以实现服务器300组件间的数据通信。处理器302可以进行判断和发出提示。在一些实施例中,处理器302可以由一个或多个处理器组成。通信端口305可以实现服务器300与外部的数据通信。在一些实施例中,服务器300可以通过通信端口305从网络发送和接受信息及数据。服务器300还可以包括不同形式的程序储存单元以及数据储存单元,例如硬盘307,只读存储器(rom)303和随机存取存储器(ram)304,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器302所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。
50.上述的处理加密表单方法可以实施为计算机程序,保存在硬盘307中,并可记载到处理器302中执行,以实施本申请中的任一处理加密表单方法。
51.本申请还提出了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的处理加密表单方法。
52.处理加密表单方法实施为计算机程序时,也可以存储在计算机可读存储介质中作为制品。例如,计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、磁条)、光盘(例如,压缩盘(cd)、数字多功能盘(dvd))、智能卡和闪存设备(例如,电可擦除可编程只读存储器(eprom)、卡、棒、键驱动)。此外,本文描述的各种存储介质能代表用于存储
信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于能存储、包含和/或承载代码和/或指令和/或数据的无线信道和各种其它介质(和/或存储介质)。
53.应该理解,上文所描述的实施例仅是示意。本文描述的实施例可在硬件、软件、固件、中间件、微码或者其任意组合中实现。对于硬件实现,处理单元可以在一个或者多个特定用途集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器和/或设计为执行本文所述功能的其它电子单元或者其结合内实现。
54.上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述申请披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示例性实施例的精神和范围。
55.同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
56.本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。处理器可以是一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dapd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带
……
)、光盘(例如,压缩盘cd、数字多功能盘dvd
……
)、智能卡以及闪存设备(例如,卡、棒、键驱动器
……
)。
57.同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个申请实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
58.虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可做出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1