业务数据存储方法及计算机可读存储介质
文献发布时间:2023-06-19 10:27:30
技术领域
本发明涉及数据安全技术领域,尤其涉及一种业务数据存储方法及计算机可读存储介质。
背景技术
目前在Android、iOS操作系统上,各类应用广泛采用数据库工具进行数据的存储,体积小巧灵活的SQLite数据库成为首选,目前大部分的手机应用都采用SQLite数据库进行数据存储。而基于关系型数据库进行大数据量存储时,blob数据类型又起到了至关重要的作用,目前主流的手机应用都是直接将数据分类存储或者组合成Json、XML等格式进行明文存储,这类数据对于已Root手机或者已越狱的iPhone手机,是没有任何安全可言的;或者只是进行简单的数据库文件加密(例如sqlcipher加密方式),无法完全地保证数据的较高级别的存储安全。所以基于此类关系型数据库的安全存储显得更加重要。
发明内容
本发明所要解决的技术问题是:提供一种业务数据存储方法及计算机可读存储介质,可有效保证数据安全性。
为了解决上述技术问题,本发明采用的技术方案为:一种业务数据存储方法,包括:
获取业务数据;
生成对称加密密钥,并通过所述对称加密密钥对所述业务数据进行加密,得到第一密文;
生成非对称加密公钥和非对称加密私钥,并通过所述非对称加密公钥对所述对称加密密钥进行加密,得到第二密文;
根据所述第一密文和第二密文,生成结构化加密数据;
将所述结构化加密数据存储至预设的业务表字段中。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
本发明的有益效果在于:通过使用对称加密算法加密业务数据,保证加密速度;通过使用非对称加密算法加密对称加密密钥,实现对对称加密密钥的保护;通过结合对称加密算法和非对称加密算法,使得针对每条数据都可做到独立密钥加解密,从而有效地实现一文一密,相比传统的数据库文件加密格式或者单纯的二进制数据存储格式,更加安全,有效地防范了数据被破译的风险。本发明通过结合对称加密算法和非对称加密算法,有效地解决了明文存储和结构化存储带来的各种不安全性,有效地保证了用户的数据安全,也有效地提升了终端应用的安全性。
附图说明
图1为本发明的一种业务数据存储方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例二的业务数据存储系统的框架示意图;
图4为本发明实施例二的流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,一种业务数据存储方法,包括:
获取业务数据;
生成对称加密密钥,并通过所述对称加密密钥对所述业务数据进行加密,得到第一密文;
生成非对称加密公钥和非对称加密私钥,并通过所述非对称加密公钥对所述对称加密密钥进行加密,得到第二密文;
根据所述第一密文和第二密文,生成结构化加密数据;
将所述结构化加密数据存储至预设的业务表字段中。
从上述描述可知,本发明的有益效果在于:通过使用对称加密算法加密业务数据,保证加密速度;通过使用非对称加密算法加密对称加密密钥,实现对对称加密密钥的保护。
进一步地,所述获取业务数据具体为:
获取业务数据;
根据所述业务数据中包含的数据类型,对所述业务数据进行序列化,得到二进制格式的业务数据;
根据业务类型,对业务数据进行结构化处理,得到结构化的业务数据。
由上述描述可知,数据以加密二进制形式存储,大大加强了数据的本地存储安全;利用手机客户端特点,将对应的数据进行结构化存储,从而有效地保证了数据的安全,保证数据被窃取之后,无法短时间之内完全破解,从而保证了数据的较高级别安全。
进一步地,所述将所述结构化加密数据存储至预设的业务表字段中具体为:
若所述业务数据对应的操作类型为插入,则将所述结构化加密数据插入至业务表的Blob字段中;
若所述业务数据对应的操作类型为更新,则将所述结构化加密数据更新至业务表的Blob字段中。
由上述描述可知,当加密完成后,业务系统根据用户的具体操作类型,判断是插入操作还是更新操作,进行对应的数据插入或者更新,将加密后的数据存储到指定的业务表字段中,从而完成数据的安全存储。
进一步地,所述根据所述第一密文和第二密文,生成结构化加密数据之后,进一步包括:
将所述非对称加密私钥和所述结构化加密数据进行关联,得到关联关系。
进一步地,所述将所述结构化加密数据存储至预设的业务表字段中之后,进一步包括:
当要读取业务数据时,从所述预设的业务表字段中获取结构化加密数据;
根据所述关联关系,获取所述结构化加密数据对应的非对称加密私钥;
通过所述非对称加密私钥对所述结构化加密数据中的第二密文进行解密,得到对称加密密钥;
通过解密得到的对称加密密钥对所述结构化加密数据中的第一密文进行解密,得到业务数据。
由上述描述可知,通过将非对称加密私钥和结构化加密数据进行关联,使得后续可基于非对称加密私钥解密得到业务数据。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的方法的步骤。
实施例一
请参照图2,本发明的实施例一为:一种业务数据存储方法,适应于对数据安全要求较高的各类应用开发中,如图2所示,包括如下步骤:
S1:获取业务数据。即用户使用业务系统(应用程序)的过程中,进行某种操作触发某业务子系统逻辑时,获取相关的业务数据。
S2:根据所述业务数据中包含的数据类型,对所述业务数据进行序列化,得到二进制格式的业务数据。
由于业务数据中各场景的不同,可能包含文本信息、资源信息(视频、音频、图片)等不同类型数据,而数据类型的不同,对应的序列化处理也不同。
S3:根据业务类型,对业务数据进行结构化处理,得到结构化的业务数据。即业务系统根据自身业务功能将对应的业务数据进行结构化,以类或者结构体形式存储。
S4:生成对称加密密钥,并通过所述对称加密密钥对所述结构化的业务数据进行加密,得到第一密文。
S5:生成非对称加密公钥和非对称加密私钥,并通过所述非对称加密公钥对所述对称加密密钥进行加密,得到第二密文。
S6:根据所述第一密文和第二密文,生成结构化加密数据。
其中,第二密文为固定的长度,可以为32字节或64字节,因此,结构化加密数据中,将第二密文放在第一密文之前,后续即可根据该固定的长度,从结构化加密数据中先获取出第二密文,再获取出第一密文。
S7:将所述结构化加密数据存储至预设的业务表字段中。
具体地,先确定用户操作类型;若为插入操作,则将结构化加密数据插入至业务表的Blob字段中;若为更新操作,则将结构化加密数据更新至业务表的Blob字段中。
其中,关于本实施例中加解密算法实现部分,用户可以根据自己业务要求进行改造,采用适合自己的加解密算法即可。
进一步地,在得到结构化加密数据之后,将非对称加密私钥和所述结构化加密数据进行关联,得到关联关系,并进行保存。
当要读取或查询业务数据时,从所述预设的业务表字段中获取结构化加密数据,根据第二密文的长度,即可获得结构化加密数据中的第二密文和第一密文;然后根据上述关联关系,获取该结构化加密数据对应的非对称加密私钥;使用该非对称加密私钥对该结构化加密数据中的第二密文进行解密,得到对称加密密钥;再使用该对称加密密钥对该结构化加密数据中的第一密文进行解密,得到二进制格式的业务数据;最后对该二进制格式的业务数据进行反序列化,即可得到业务数据。
本实施例中,数据以加密二进制形式存储,大大加强了数据的本地存储安全;利用手机客户端特点,将对应的数据进行结构化存储,从而有效地保证了数据的安全,保证数据被窃取之后,无法短时间之内完全破解,从而保证了数据的较高级别安全;通过结合对称加密算法和非对称加密算法,针对所有存储的数据,采用一文一密的方式,做到单条数据的相对独立和安全,相比传统存储方式具有更大的优势。
实施例二
请参照图3-4,本实施例为实施例一的具体实施方式。
本实施例为业务数据存储系统,包括加解密算法模块、加解密业务模块、业务数据结构化模块、业务数据逻辑处理模块和Blob数据写入/更新模块,整体技术框架如图3所示,上述五个模块分别位于加解密基础层、加解密业务层和数据业务层。各模块介绍如下:
加解密算法模块:基于加解密算法(对称加密算法、非对称加密算法)进行模块封装,满足加解密算法使用要求。
加解密业务模块:采用对称加密算法和非对称加密算法结合机制,对加解密算法模块进行业务封装,使用对称加密算法对业务层Blob数据进行加密,使用非对称加密算法对对称加密算法的密钥进行加密。Blob数据存储数据格式包括加密头(固定长度,32字节或64字节)和加密后的(结构化)Blob业务数据(长度不固定,具体根据业务而定),加密头中的数据即加密后的对称加密算法的密钥。
业务数据结构化模块:将各业务模块数据结构化,各系统根据自身业务功能将对应的业务数据进行结构化,以类或者结构体形式存储。举例格式如下:
业务数据逻辑处理模块:根据业务数据中各场景的不同,例如消息类中可能有文本消息、视频、音频、图片等不同类型数据,对应的处理也会不同。
Blob数据写入/更新模块:将业务数据逻辑处理模块处理后的内存数据写入Blob字段。按照指定的数据类型长度进行数据的16进制存储,此类数据目前为明文数据,经过加解密模块处理后,以密文形式进行存储。
本实施例具体实现业务流程图如图4所示。其中,本实施例中的各业务系统,需要根据自己的业务需要进行业务逻辑、业务数据的设计,只要符合业务需求即可,具体的加解密算法也根据用户需求进行选择。
具体地,各业务子系统根据自己的业务需求,进行系统的模块初始化以及各子系统的数据结构化操作,当用户触发各种子业务系统功能时,业务数据结构化模块根据传入的类型不同,进行对应数据的结构化处理,然后调用加解密业务模块进行对应数据的加密,主要加密逻辑为:生成对称加密密钥,采用对称加密密钥进行结构化数据的加密,然后生成非对称加密算法的公私钥,采用非对称加密公钥再对对称加密密钥进行加密,保证对称加密密钥的安全性,最后将数据以二进制形式存储,固定非对称加密算法加密块长度,从而达到业务数据的最终结构化加密结果。
当加密完成后,业务系统根据用户的具体操作类型,判断到底是数据库插入操作还是更新操作,进行对应的数据插入或者更新,将加密后的数据存储到指定的业务表字段中,从而完成数据的安全存储。
本实施例有效地解决了明文存储和结构化存储带来的各种不安全性,有效地保证了用户的数据安全,也有效地提升了终端应用的安全性,随着网络安全技术越来越多的普及,开发者和用户对数据的安全要求也会越来越高,本实施例在此层面上应该能够起到很好地防护效果和更加广泛的实施。
实施例三
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
获取业务数据;
生成对称加密密钥,并通过所述对称加密密钥对所述业务数据进行加密,得到第一密文;
生成非对称加密公钥和非对称加密私钥,并通过所述非对称加密公钥对所述对称加密密钥进行加密,得到第二密文;
根据所述第一密文和第二密文,生成结构化加密数据;
将所述结构化加密数据存储至预设的业务表字段中。
进一步地,所述获取业务数据具体为:
获取业务数据;
根据所述业务数据中包含的数据类型,对所述业务数据进行序列化,得到二进制格式的业务数据;
根据业务类型,对业务数据进行结构化处理,得到结构化的业务数据。
进一步地,所述将所述结构化加密数据存储至预设的业务表字段中具体为:
若所述业务数据对应的操作类型为插入,则将所述结构化加密数据插入至业务表的Blob字段中;
若所述业务数据对应的操作类型为更新,则将所述结构化加密数据更新至业务表的Blob字段中。
进一步地,所述根据所述第一密文和第二密文,生成结构化加密数据之后,进一步包括:
将所述非对称加密私钥和所述结构化加密数据进行关联,得到关联关系。
进一步地,所述将所述结构化加密数据存储至预设的业务表字段中之后,进一步包括:
当要读取业务数据时,从所述预设的业务表字段中获取结构化加密数据;
根据所述关联关系,获取所述结构化加密数据对应的非对称加密私钥;
通过所述非对称加密私钥对所述结构化加密数据中的第二密文进行解密,得到对称加密密钥;
通过解密得到的对称加密密钥对所述结构化加密数据中的第一密文进行解密,得到业务数据。
综上所述,本发明提供的一种业务数据存储方法及计算机可读存储介质,通过使用对称加密算法加密业务数据,保证加密速度;通过使用非对称加密算法加密对称加密密钥,实现对对称加密密钥的保护;通过结合对称加密算法和非对称加密算法,使得针对每条数据都可做到独立密钥加解密,从而有效地实现一文一密,相比传统的数据库文件加密格式或者单纯的二进制数据存储格式,更加安全,有效地防范了数据被破译的风险。数据以加密二进制形式存储,大大加强了数据的本地存储安全;利用手机客户端特点,将对应的数据进行结构化存储,从而有效地保证了数据的安全,保证数据被窃取之后,无法短时间之内完全破解,从而保证了数据的较高级别安全。本发明通过结合对称加密算法和非对称加密算法,有效地解决了明文存储和结构化存储带来的各种不安全性,有效地保证了用户的数据安全,也有效地提升了终端应用的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
- 业务数据存储方法及计算机可读存储介质
- 数据存储方法和装置、数据查询方法和装置、数据结构、电子设备及计算机可读存储介质