CN112699409A - 一种数据处理方法、装置和电子设备 - Google Patents
一种数据处理方法、装置和电子设备 Download PDFInfo
- Publication number
- CN112699409A CN112699409A CN202011643405.9A CN202011643405A CN112699409A CN 112699409 A CN112699409 A CN 112699409A CN 202011643405 A CN202011643405 A CN 202011643405A CN 112699409 A CN112699409 A CN 112699409A
- Authority
- CN
- China
- Prior art keywords
- table name
- key
- information
- database
- initial state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种数据处理方法、装置和电子设备,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据处理方法、装置和电子设备。
背景技术
目前,基于区块链构建的应用中,往往还需引入第三方的数据库,存储并未上链的数据。例如基于超级账本构建的区块链系统中会引入CouchDB存储区块链的状态数据;也有部分应用场景中,部分业务逻辑并没有上链,因此数据会存放在区块链以外的第三方数据库中。然而第三方数据库可能存在内部攻击的问题,即拥有一定数据读写权限的节点,可能会恶意篡改关键数据和日志,造成数据的丢失和不匹配。
发明内容
为解决上述问题,本发明实施例的目的在于提供一种数据处理方法、装置和电子设备。
第一方面,本发明实施例提供了一种数据处理方法,包括:
验证端获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
第二方面,本发明实施例还提供了一种数据处理装置,包括:
获取模块,用于获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
第一查询模块,用于查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
第一计算模块,用于对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
第二查询模块,用于根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
第二计算模块,用于从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
操作模块,用于当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
第三计算模块,用于从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
更新模块,用于利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
第一存储模块,用于将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
第三方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面所述的方法的步骤。
第四方面,本发明实施例还提供了一种电子设备,所述电子设备包括有存储器,处理器以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行上述第一方面所述的方法的步骤。
本发明实施例上述第一方面至第四方面提供的方案中,验证端在获取到客户端发送的具有需要操作的表格的表格名称的数据库操作请求时,从区块链系统中查询出具有所述表格名称的表格的身份密钥和信息密钥;利用查询出具有所述表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时,利用所述数据库操作请求中携带的操作内容,对表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;然后从操作后的具有表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;利用表格名称、操作内容、操作时间和最新的信息密钥,生成信息更新请求,并将信息更新请求发送到区块链系统,使得区块链系统根据最新的信息密钥,对表格名称对应的信息密钥进行更新,生成表格名称、操作内容、操作时间的对应关系,并将生成的表格名称、所述操作内容、所述操作时间的对应关系存储起来;最后将操作后的具有所述表格名称的表格发送到所述数据库中存储起来,与相关技术中存放在区块链以外的第三方数据库中的数据可能被恶意篡改的方式相比,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例1所提供的一种数据处理方法的流程图;
图2示出了本发明实施例2所提供的一种数据处理装置的结构示意图;
图3示出了本发明实施例3所提供的一种电子设备的结构示意图。
具体实施方式
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”、“顺时针”、“逆时针”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
目前,基于区块链构建的应用中,往往还需引入第三方的数据库,存储并未上链的数据。例如基于超级账本构建的区块链系统中会引入CouchDB存储区块链的状态数据;也有部分应用场景中,部分业务逻辑并没有上链,因此这些未上链的数据会存放在区块链以外的第三方数据库中。然而第三方数据库可能存在内部攻击的问题,即拥有一定数据读写权限的节点,可能会恶意篡改关键数据和日志,造成数据的丢失和不匹配。
通常使用访问控制策略和防火墙来维护数据库系统中数据的完整性和安全性。然而,内部攻击对系统和管理权限有深入了解的人篡改数据构成了一个独特的挑战。仅附加日志记录等措施证明是不够的,因为具有管理权限的攻击者可以更改日志和登录记录以消除攻击痕迹,从而使内部攻击难以检测。
基于此,本申请各实施例提出的数据处理方法、装置和电子设备,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
首先,对本申请提出的数据处理方法、装置和电子设备的应用场景进行说明:
该应用场景,包括:客户端、验证端、数据库和区块链系统;所述验证端,可以分别与所述客户端、所述数据库和所述区块链系统进行交互。
所述客户端,用于向所述验证端发送对数据库中存储的表格进行操作的数据库操作请求。
所述数据库,是第三方数据库,用于对表格进行存储。
所述区块链系统,用于对所述数据库中存储的表格的身份密钥和信息密钥进行存储。
所述验证端,用于在获取到客户端发送的具有需要操作的表格的表格名称的数据库操作请求时,从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行所述数据库操作请求中的操作内容。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请做进一步详细的说明。
实施例1
参见图1所示的一种数据处理方法的流程图,本实施例提出一种数据处理方法,包括以下具体步骤:
步骤100、验证端获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容。
在上述步骤100中,所述操作内容,包括但不限于:对表格数据的增、删、改、查以及还原操作。
步骤102、查询出与所述数据库操作请求中携带的表格名称对应的主键信息。
在上述步骤102中,所述验证端中,存储有数据库中存储的所有的表格的表格名称和主键信息的对应关系。那么利用所述数据库操作请求中携带的表格名称,就可以查询出与所述数据库操作请求中携带的表格名称对应的主键信息。
当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,本实施例提出的数据处理方法,还可以执行以下步骤(1)至步骤(6):
(1)当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,从所述数据库操作请求中获取初始状态的表格;
(2)提取初始状态的表格中的主键信息,并对初始状态的表格中的主键信息进行哈希计算,得到初始状态的表格的身份密钥;
(3)从初始状态的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到初始状态的表格的信息密钥;
(4)生成初始状态的表格、表格名称、身份密钥和信息密钥的对应关系,并将生成的初始状态的表格、表格名称、身份密钥和信息密钥的对应关系发送到所述区块链系统存储起来;
(5)生成初始状态的表格的表格名称与主键信息的对应关系并存储起来;
(6)将初始状态的表格发送到所述数据库中存储起来。
在上述步骤(1)中,当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,确定所述数据库操作请求是要在数据库中增加一张表格的操作,那么就从所述数据库操作请求中获取初始状态的表格。
如果数据库操作请求中没有表格的话,那么流程结束。
在上述步骤(2)中,提取初始状态的表格中的主键信息的过程是现有技术,这里不再赘述。
若查询出与所述数据库操作请求中携带的表格名称对应的主键信息,那么继续执行步骤104。
步骤104、对查询出的主键信息进行哈希计算,得到待验证的身份密钥。
步骤106、根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥。
在上述步骤106中,根据所述表格名称生成表格获取请求,并将生成的表格获取请求发送到所述数据库中,从所述数据库中获取具有所述表格名称的表格。
根据所述表格名称生成密钥获取请求,并将生成的密钥获取请求发送到所述区块链系统中。
区块链系统中记录有初始状态的表格、表格名称、身份密钥和信息密钥的对应关系;所以,当所述区块链系统接收到密钥获取请求时,可以根据密钥获取请求中的表格名称,从初始状态的表格、表格名称、身份密钥和信息密钥的对应关系中查询出与所述表格名称对应的身份密钥和信息密钥并反馈给所述验证端。
其中,所述初始状态的表格,就是携带有表格名称的具有原始数据的表格。
例如用表格存入用户信息,那么初始状态的表格中就会存储有几个用户的用户信息;后续操作均在初始状态的表格基础上进行的操作。
步骤108、从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥。
在上述步骤108中,所述预定列,就是指具有所述表格名称的表格的第几列。
在一个实施方式中,所述预定列3,就是指具有所述表格名称的表格中的第3列。
步骤110、当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述待验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间。
在上述步骤110中,当所述操作内容包括:还原操作指令以及还原时间点时,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,包括以下具体步骤(1)至步骤(4):
(1)利用所述数据库操作请求中携带的表格名称,从所述区块链系统中查询出需要进行还原操作的初始状态的表格;
(2)将所述数据库操作请求中的表格名称和还原时间点发送到所述区块链系统,使得所述区块链系统利用所述还原时间点,从存储的所述表格名称、所述操作内容、所述操作时间的对应关系中查询出所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
(3)接收所述区块链系统查询出的所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
(4)按照所述操作时间的顺序,利用接收到的操作内容对所述初始状态的表格进行操作,得到进行完还原操作的表格。
在上述步骤(1)中,根据所述表格名称生成表格获取请求,并将生成的表格获取请求发送到所述区块链系统中。
当所述区块链系统接收到表格获取请求时,可以根据表格获取请求中的表格名称,从初始状态的表格、表格名称、身份密钥和信息密钥的对应关系中查询出与所述表格名称对应的初始状态的表格并反馈给所述验证端。
在上述步骤(4)中,在一个实施方式中,在所述还原时间点之前,对获取到的初始状态的表格执行了如下的操作内容:
增加表数据X行 时间1
修改表数据Y列 时间2
删除表数据Z行 时间3
其中,时间1早于时间2;时间2早于时间3。
按照所述操作时间的顺序,利用接收到的操作内容对所述初始状态的表格进行操作的顺序就是:增加表数据X行、修改表数据Y列、以及删除表数据Z行。
那么,对所述初始状态的表格执行完:增加表数据X行、修改表数据Y列、以及删除表数据Z行的操作的表格,就是进行完还原操作的表格。
步骤112、从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥。
步骤114、利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来。
在上述步骤114中,所述区块链系统根据所述信息更新请求中的最新的信息密钥,对所述表格名称对应的信息密钥进行更新,就是利用所述表格名称,从初始状态的表格、表格名称、身份密钥和信息密钥的对应关系中查询出与所述表格名称对应的信息密钥,并根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,并将更新后的信息密钥存储到具有所述表格名称的初始状态的表格、表格名称、身份密钥和信息密钥的对应关系中。
而且,所述区块链系统还利用所述信息更新请求中携带的所述表格名称、所述操作内容、所述操作时间生成所述表格名称、所述操作内容、所述操作时间的对应关系并存储起来。从而通过将所述表格名称、所述操作内容、所述操作时间发送到区块链系统中存储起来,可以对表格的历史操作进行追溯。
步骤116、将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
综上所述,本实施例提出的数据处理方法,验证端在获取到客户端发送的具有需要操作的表格的表格名称的数据库操作请求时,从区块链系统中查询出具有所述表格名称的表格的身份密钥和信息密钥;利用查询出具有所述表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时,利用所述数据库操作请求中携带的操作内容,对表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;然后从操作后的具有表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;利用表格名称、操作内容、操作时间和最新的信息密钥,生成信息更新请求,并将信息更新请求发送到区块链系统,使得区块链系统根据最新的信息密钥,对表格名称对应的信息密钥进行更新,生成表格名称、操作内容、操作时间的对应关系,并将生成的表格名称、所述操作内容、所述操作时间的对应关系存储起来;最后将操作后的具有所述表格名称的表格发送到所述数据库中存储起来,与相关技术中存放在区块链以外的第三方数据库中的数据可能被恶意篡改的方式相比,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
实施例2
本实施例提出一种数据处理装置,用于执行上述的数据处理方法。
参见图2所示的一种数据处理装置的结构示意图,本实施例提出一种数据处理装置,包括:
获取模块200,用于获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
第一查询模块202,用于查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
第一计算模块204,用于对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
第二查询模块206,用于根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
第二计算模块208,用于从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
操作模块210,用于当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述待验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
第三计算模块212,用于从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
更新模块214,用于利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
第一存储模块216,用于将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
进一步地,本实施例提出的数据处理装置,还包括:
处理模块,用于当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,从所述数据库操作请求中获取初始状态的表格;
第四计算模块,用于提取初始状态的表格中的主键信息,并对初始状态的表格中的主键信息进行哈希计算,得到初始状态的表格的身份密钥;
第五计算模块,用于从初始状态的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到初始状态的表格的信息密钥;
第一生成模块,用于生成初始状态的表格、表格名称、身份密钥和信息密钥的对应关系,并将生成的初始状态的表格、表格名称、身份密钥和信息密钥的对应关系发送到所述区块链系统存储起来;
第二生成模块,用于生成初始状态的表格的表格名称与主键信息的对应关系并存储起来;
第二存储模块,用于将初始状态的表格发送到所述数据库中存储起来。
进一步地,当所述操作内容包括:还原操作指令以及还原时间点时,所述操作模块,用于对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,包括:
利用所述数据库操作请求中携带的表格名称,从所述区块链系统中查询出需要进行还原操作的初始状态的表格;
将所述数据库操作请求中的表格名称和还原时间点发送到所述区块链系统,使得所述区块链系统利用所述还原时间点,从存储的所述表格名称、所述操作内容、所述操作时间的对应关系中查询出所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
接收所述区块链系统查询出的所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
按照所述操作时间的顺序,利用接收到的操作内容对所述初始状态的表格进行操作,得到进行完还原操作的表格。
综上所述,本实施例提出的数据处理装置,验证端在获取到客户端发送的具有需要操作的表格的表格名称的数据库操作请求时,从区块链系统中查询出具有所述表格名称的表格的身份密钥和信息密钥;利用查询出具有所述表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时,利用所述数据库操作请求中携带的操作内容,对表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;然后从操作后的具有表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;利用表格名称、操作内容、操作时间和最新的信息密钥,生成信息更新请求,并将信息更新请求发送到区块链系统,使得区块链系统根据最新的信息密钥,对表格名称对应的信息密钥进行更新,生成表格名称、操作内容、操作时间的对应关系,并将生成的表格名称、所述操作内容、所述操作时间的对应关系存储起来;最后将操作后的具有所述表格名称的表格发送到所述数据库中存储起来,与相关技术中存放在区块链以外的第三方数据库中的数据可能被恶意篡改的方式相比,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
实施例3
本实施例提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例1描述的数据处理方法的步骤。具体实现可参见方法实施例1,在此不再赘述。
此外,参见图3所示的一种电子设备的结构示意图,本实施例还提出一种电子设备,上述电子设备包括总线51、处理器52、收发机53、总线接口54、存储器55和用户接口56。上述电子设备包括有存储器55。
本实施例中,上述电子设备还包括:存储在存储器55上并可在处理器52上运行的一个或者一个以上的程序,经配置以由上述处理器执行上述一个或者一个以上程序用于进行以下步骤(1)至步骤(9):
(1)验证端获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
(2)查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
(3)对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
(4)根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
(5)从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
(6)当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
(7)从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
(8)利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
(9)将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
收发机53,用于在处理器52的控制下接收和发送数据。
其中,总线架构(用总线51来代表),总线51可以包括任意数量的互联的总线和桥,总线51将包括由处理器52代表的一个或多个处理器和存储器55代表的存储器的各种电路链接在一起。总线51还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本实施例不再对其进行进一步描述。总线接口54在总线51和收发机53之间提供接口。收发机53可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。例如:收发机53从其他设备接收外部数据。收发机53用于将处理器52处理后的数据发送给其他设备。取决于计算系统的性质,还可以提供用户接口56,例如小键盘、显示器、扬声器、麦克风、操纵杆。
处理器52负责管理总线51和通常的处理,如前述上述运行通用操作系统。而存储器55可以被用于存储处理器52在执行操作时所使用的数据。
可选的,处理器52可以是但不限于:中央处理器、单片机、微处理器或者可编程逻辑器件。
可以理解,本发明实施例中的存储器55可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本实施例描述的系统和方法的存储器55旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器55存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:操作系统551和应用程序552。
其中,操作系统551,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序552,包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序552中。
综上所述,本实施例提出的计算机可读存储介质和电子设备,验证端在获取到客户端发送的具有需要操作的表格的表格名称的数据库操作请求时,从区块链系统中查询出具有所述表格名称的表格的身份密钥和信息密钥;利用查询出具有所述表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时,利用所述数据库操作请求中携带的操作内容,对表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;然后从操作后的具有表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;利用表格名称、操作内容、操作时间和最新的信息密钥,生成信息更新请求,并将信息更新请求发送到区块链系统,使得区块链系统根据最新的信息密钥,对表格名称对应的信息密钥进行更新,生成表格名称、操作内容、操作时间的对应关系,并将生成的表格名称、所述操作内容、所述操作时间的对应关系存储起来;最后将操作后的具有所述表格名称的表格发送到所述数据库中存储起来,与相关技术中存放在区块链以外的第三方数据库中的数据可能被恶意篡改的方式相比,通过从区块链系统中查询出的具有表格名称的表格的身份密钥和信息密钥对客户端需要操作的表格进行验证,并在验证通过时执行操作,从而构建了基于区块链技术的数据安全保护方案,在传统的数据库体系中引入区块链系统,记录数据库的状态与变更信息,并通过区块链中的数据验证用户状态,防止链上数据被恶意篡改。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种数据处理方法,其特征在于,包括:
验证端获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述待验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
2.根据权利要求1所述的方法,其特征在于,还包括:
当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,从所述数据库操作请求中获取初始状态的表格;
提取初始状态的表格中的主键信息,并对初始状态的表格中的主键信息进行哈希计算,得到初始状态的表格的身份密钥;
从初始状态的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到初始状态的表格的信息密钥;
生成初始状态的表格、表格名称、身份密钥和信息密钥的对应关系,并将生成的初始状态的表格、表格名称、身份密钥和信息密钥的对应关系发送到所述区块链系统存储起来;
生成初始状态的表格的表格名称与主键信息的对应关系并存储起来;
将初始状态的表格发送到所述数据库中存储起来。
3.根据权利要求1所述的方法,其特征在于,当所述操作内容包括:还原操作指令以及还原时间点时,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,包括:
利用所述数据库操作请求中携带的表格名称,从所述区块链系统中查询出需要进行还原操作的初始状态的表格;
将所述数据库操作请求中的表格名称和还原时间点发送到所述区块链系统,使得所述区块链系统利用所述还原时间点,从存储的所述表格名称、所述操作内容、所述操作时间的对应关系中查询出所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
接收所述区块链系统查询出的所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
按照所述操作时间的顺序,利用接收到的操作内容对所述初始状态的表格进行操作,得到进行完还原操作的表格。
4.一种数据处理装置,其特征在于,包括:
获取模块,用于获取客户端发送的数据库操作请求,所述数据库操作请求中携带有需要操作的存储在数据库中的表格的表格名称以及操作内容;
第一查询模块,用于查询出与所述数据库操作请求中携带的表格名称对应的主键信息;
第一计算模块,用于对查询出的主键信息进行哈希计算,得到待验证的身份密钥;
第二查询模块,用于根据所述表格名称,从所述数据库中获取具有所述表格名称的表格,并根据所述表格名称,从所述区块链系统中查询出与所述表格名称对应的身份密钥和信息密钥;
第二计算模块,用于从获取到的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到待验证的信息密钥;
操作模块,用于当所述待验证的身份密钥与从所述区块链系统中查询出的身份密钥相同且所述待验证的信息密钥与从所述区块链系统中查询出的信息密钥相同时,利用所述数据库操作请求中携带的操作内容,对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,并记录执行所述数据库操作请求中操作内容的操作时间;
第三计算模块,用于从操作后的具有所述表格名称的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到最新的信息密钥;
更新模块,用于利用所述表格名称、所述操作内容、所述操作时间和所述最新的信息密钥,生成信息更新请求,并将所述信息更新请求发送到区块链系统,使得所述区块链系统根据所述最新的信息密钥,对所述表格名称对应的信息密钥进行更新,生成所述表格名称、所述操作内容、所述操作时间的对应关系,并将生成的所述表格名称、所述操作内容、所述操作时间的对应关系存储起来;
第一存储模块,用于将操作后的具有所述表格名称的表格发送到所述数据库中存储起来。
5.根据权利要求4所述的装置,其特征在于,还包括:
处理模块,用于当未能查询出与所述数据库操作请求中携带的表格名称对应的主键信息时,从所述数据库操作请求中获取初始状态的表格;
第四计算模块,用于提取初始状态的表格中的主键信息,并对初始状态的表格中的主键信息进行哈希计算,得到初始状态的表格的身份密钥;
第五计算模块,用于从初始状态的表格中提取预定列的列数据,并对提取出的列数据进行哈希计算,得到初始状态的表格的信息密钥;
第一生成模块,用于生成初始状态的表格、表格名称、身份密钥和信息密钥的对应关系,并将生成的初始状态的表格、表格名称、身份密钥和信息密钥的对应关系发送到所述区块链系统存储起来;
第二生成模块,用于生成初始状态的表格的表格名称与主键信息的对应关系并存储起来;
第二存储模块,用于将初始状态的表格发送到所述数据库中存储起来。
6.根据权利要求4所述的装置,其特征在于,当所述操作内容包括:还原操作指令以及还原时间点时,所述操作模块,用于对具有所述表格名称的表格进行操作,得到操作后的具有所述表格名称的表格,包括:
利用所述数据库操作请求中携带的表格名称,从所述区块链系统中查询出需要进行还原操作的初始状态的表格;
将所述数据库操作请求中的表格名称和还原时间点发送到所述区块链系统,使得所述区块链系统利用所述还原时间点,从存储的所述表格名称、所述操作内容、所述操作时间的对应关系中查询出所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
接收所述区块链系统查询出的所述还原时间点以及所述还原时间点之前对所述初始状态的表格进行的操作内容和操作时间;
按照所述操作时间的顺序,利用接收到的操作内容对所述初始状态的表格进行操作,得到进行完还原操作的表格。
7.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行上述权利要求1-3任一项所述的方法的步骤。
8.一种电子设备,其特征在于,所述电子设备包括有存储器,处理器以及一个或者一个以上的程序,其中所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行权利要求1-3任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643405.9A CN112699409A (zh) | 2020-12-31 | 2020-12-31 | 一种数据处理方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643405.9A CN112699409A (zh) | 2020-12-31 | 2020-12-31 | 一种数据处理方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112699409A true CN112699409A (zh) | 2021-04-23 |
Family
ID=75514193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011643405.9A Pending CN112699409A (zh) | 2020-12-31 | 2020-12-31 | 一种数据处理方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112699409A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010042204A1 (en) * | 2000-05-11 | 2001-11-15 | David Blaker | Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN109542892A (zh) * | 2018-10-19 | 2019-03-29 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
CN111831997A (zh) * | 2020-06-18 | 2020-10-27 | 华东师范大学 | 一种客户端与数据库之间建立可信关系的方法 |
CN112035491A (zh) * | 2020-09-30 | 2020-12-04 | 中山大学 | 基于区块链的数据存储方法、电子积分处理方法及系统 |
-
2020
- 2020-12-31 CN CN202011643405.9A patent/CN112699409A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010042204A1 (en) * | 2000-05-11 | 2001-11-15 | David Blaker | Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database |
CN103294831A (zh) * | 2013-06-27 | 2013-09-11 | 中国人民大学 | 列存储数据库中基于多维数组的分组聚集计算方法 |
CN109542892A (zh) * | 2018-10-19 | 2019-03-29 | 北京全路通信信号研究设计院集团有限公司 | 一种实时数据库的关系化实现方法、装置及系统 |
CN111831997A (zh) * | 2020-06-18 | 2020-10-27 | 华东师范大学 | 一种客户端与数据库之间建立可信关系的方法 |
CN112035491A (zh) * | 2020-09-30 | 2020-12-04 | 中山大学 | 基于区块链的数据存储方法、电子积分处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263035B (zh) | 基于区块链的数据存储、查询方法及装置和电子设备 | |
CN109791591B (zh) | 经由区块链进行身份和凭证保护及核实的方法和系统 | |
CN108829781B (zh) | 客户信息查询方法、装置、计算机设备和存储介质 | |
US11716357B2 (en) | Data access policies | |
CN110633963B (zh) | 电子票据处理方法、装置、计算机可读存储介质和设备 | |
US7562215B2 (en) | System and method for electronic document security | |
CN111753334B (zh) | 一种联盟链跨链数据一致性验证方法、装置和电子设备 | |
CN109493048B (zh) | 基于区块链的财务记账方法、装置、设备及存储介质 | |
US11115804B2 (en) | Subscription to dependencies in smart contracts | |
CN112215609B (zh) | 基于超级账本的房产用户身份认证方法、装置和电子设备 | |
CN111641712A (zh) | 区块链数据更新方法、装置、设备、系统及可读存储介质 | |
CN112884477A (zh) | 一种区块链交易发起、验证方法及系统 | |
CN115659417A (zh) | 审计日志存储方法、验证方法、装置和计算机设备 | |
CN112214456B (zh) | 一种房产数据处理方法、装置和电子设备 | |
CN110598475A (zh) | 基于区块链的作品属性信息获取方法、装置和计算机设备 | |
CN110597820A (zh) | 基于区块链的信息处理方法、装置、存储介质和设备 | |
CN112699409A (zh) | 一种数据处理方法、装置和电子设备 | |
CN116010926A (zh) | 登陆认证方法、装置、计算机设备和存储介质 | |
CN115935414A (zh) | 基于区块链的数据校验方法、装置、电子设备和存储介质 | |
CN112905533B (zh) | 文件提交的管理方法、装置、设备及存储介质 | |
CN110598449B (zh) | 履约保函的数据处理方法、装置、存储介质和计算机设备 | |
JP7327100B2 (ja) | データ管理システム、データ管理装置及びデータ管理プログラム | |
CN114692228A (zh) | 安全监控方法、装置、设备和可读存储介质 | |
CN112862454A (zh) | 试验执行工单更新方法、装置、计算机设备和存储介质 | |
CN111552551A (zh) | 基于主从系统的用户管理方法、装置、计算机设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20221115 |
|
AD01 | Patent right deemed abandoned |