掌桥专利:专业的专利平台
掌桥专利
首页

数据存储方法、装置、终端及存储介质

文献发布时间:2023-06-19 12:05:39


数据存储方法、装置、终端及存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及一种数据存储方法、装置、终端及存储介质。

背景技术

随着计算机技术的发展,对数据安全的要求也越来越高,为了提高数据安全,通常需要对数据进行加密,以便对加密后的数据进行存储。

相关技术中,对原始数据进行加密得到加密数据,一般通过直接存储数据的方式,对加密后的数据进行存储,如:将加密数据存储至so(SharedObject,共享对象)二进制文件中,通过该种方式存储加密数据的安全性较差。因此,如何提升数据的安全性,是一个重要研究方向。

发明内容

本公开提供了一种数据存储方法、装置、终端及存储介质,提高了数据的安全性。

根据本公开实施例的一方面,提供一种数据存储方法,所述数据存储方法包括:

从数据库中查询目标数据所属的字段对应的加密信息,所述数据库用于存储至少一个字段对应的加密信息;

对所述加密信息与所述目标数据进行组合,得到所述目标数据对应的加密数据;

将所述加密数据存储至图片文件中的文本数据块。

本公开实施例提供的方法,通过数据库获取目标数据对应的加密信息,采用该加密信息对目标数据进行加密,将得到的加密数据存储在图片文件中,实现基于图片文件对目标数据的加密存储,且采用加密信息与目标数据进行组合的方式进行加密,使后续需要采用该加密信息来读取目标数据,在不知道目标数据对应的加密信息的情况下,则无法从图片文件中读取数据,提高了数据的安全性。

在一些实施例中,所述对所述加密信息与所述目标数据进行组合,得到所述目标数据对应的加密数据,包括:

对所述加密信息、所述目标数据与符号进行组合,得到所述加密数据。

本公开实施例中,采用加密信息、目标数据与符号进行组合的方式进行加密,使后续读取数据时不仅需要知道加密信息,还需要知道组合中所采用的符号,进一步提高了数据的安全性。

在一些实施例中,所述将所述加密数据存储至图片文件中的文本数据块中之前,所述数据存储方法还包括:

获取所述图片文件中存储的至少一个类型数据,每个类型数据用于指示所述每个类型数据对应的数据块所属的类型;

从所述至少一个类型数据中,确定目标类型数据,所述目标类型数据用于指示所述目标类型数据对应的数据块属于文本类型;

将所述目标类型数据对应的数据块,确定为所述文本数据块。

在一些实施例中,由于需要将加密数据存储在图片文件中的文本数据块中,因此根据图片文件中的类型数据,来确定文本数据块,实现对文本数据块的定位。

在一些实施例中,所述将所述目标类型数据对应的数据块,确定为所述文本数据块,包括:

从所述图片文件中,获取与所述目标类型数据相邻的字节数量,所述字节数量用于指示所述文本数据块中包含的字节的数量;

在所述图片文件中,将以所述目标类型数据为起始位置的所述字节数量的字节,确定为所述文本数据块。

本公开实施例中,数据块是由多个字节组成的,根据目标类型数据相邻的字节数量,能够更加准确地确定文本数据块中包括哪些字节,从而使定位的文本数据块的位置更加精确。

在一些实施例中,所述从所述至少一个类型数据中,确定目标类型数据,包括:

获取所述图片文件的协议信息,所述协议信息包括类型数据与数据块所属的类型之间的对应关系;

根据所述对应关系,从所述至少一个类型数据中,确定文本类型对应的所述目标类型数据。

本公开实施例中,根据图片文件的协议信息,来确定类型数据对应的数据块所属的类型,从而保证类型数据与数据块所属的类型之间的对应关系的统一性,避免不同的图片文件采用不同的对应关系。

在一些实施例中,所述将所述加密数据存储至图片文件中的文本数据块,包括:

响应于所述图片文件中不存在文本数据块,或者所述图片文件中存在的文本数据块中已存储有数据,在所述图片文件中创建新的文本数据块;

将所述加密数据存储至所述新的文本数据块中。

本公开实施例中,图片文件中能够包括多个文本数据块,在图片文件中没有可存储目标数据的文本数据块时,能够创建新的文本数据块来存储数据,从而实现在一个图片文件中的多个文本数据块中存储数据,以减少图片文件的数量。

在一些实施例中,所述对所述加密信息与所述目标数据进行组合,得到所述目标数据对应的加密数据,包括:

响应于所述目标数据为字符串类型的数据,对所述加密信息与所述目标数据进行组合,得到所述加密数据。

本公开实施例中,文本数据块中仅是存储字符串类型的数据,而不存储其他类型的数据,实现对字符串类型的数据的存储。

在一些实施例中,所述将所述加密数据存储至图片文件中的文本数据块之后,所述数据存储方法包括:

响应于接收到携带所述字段的数据读取指令,从所述数据库中查询所述字段对应的加密信息;

从所述图片文件中查询所存储的加密数据中的加密信息与所述加密信息相同的文本数据块;

从查询到的文本数据块中读取所述目标数据。

本公开实施例中,通过从数据块中查询加密信息,采用查询到的加密信息从图片文件中读取目标数据,实现数据读取,而在不知道加密信息的情况下,则无法从图片文件中读取数据,提高了数据的安全性。

在一些实施例中,所述从所述图片文件中查询所存储的加密数据中的加密信息与所述加密信息相同的文本数据块,包括:

从所述图片文件中查询文本类型对应的目标类型数据,将查询到的目标类型数据所在的至少一个数据块确定为文本数据块;

从查询到的至少一个文本数据块中确定所存储的加密数据中的加密信息与所述加密信息相同的文本数据块。

本公开实施例中,先确定图片文件中的至少一个文本数据块,再从确定的至少一个文本数据块中确定加密信息对应的加密数据所在的文本数据块,从而只需查询至少一个文本数据块,无需遍历图片文件中的全部数据块,从而提高了数据提取的效率。

根据本公开实施例的再一方面,提供一种数据存储装置,所述数据存储装置包括:

加密信息查询单元,被配置为执行从数据库中查询目标数据所属的字段对应的加密信息,所述数据库用于存储至少一个字段对应的加密信息;

加密数据获取单元,被配置为执行对所述加密信息与所述目标数据进行组合,得到所述目标数据对应的加密数据;

数据存储单元,被配置为执行将所述加密数据存储至图片文件中的文本数据块。

在一些实施例中,所述加密数据获取单元,被配置为执行对所述加密信息、所述目标数据与符号进行组合,得到所述加密数据。

在一些实施例中,所述数据存储装置还包括:

数据块确定单元,被配置为执行获取所述图片文件中存储的至少一个类型数据,每个类型数据用于指示所述每个类型数据对应的数据块所属的类型;

所述数据块确定单元,还被配置为执行从所述至少一个类型数据中,确定目标类型数据,所述目标类型数据用于指示所述目标类型数据对应的数据块属于文本类型;

所述数据块确定单元,还被配置为执行将所述目标类型数据对应的数据块,确定为所述文本数据块。

在一些实施例中,所述数据块确定单元,还被配置为执行:

从所述图片文件中,获取与所述目标类型数据相邻的字节数量,所述字节数量用于指示所述文本数据块中包含的字节的数量;

在所述图片文件中,将以所述目标类型数据为起始位置的所述字节数量的字节,确定为所述文本数据块。

在一些实施例中,所述数据块确定单元,还被配置为执行:

获取所述图片文件的协议信息,所述协议信息包括类型数据与数据块所属的类型之间的对应关系;

根据所述对应关系,从所述至少一个类型数据中,确定文本类型对应的所述目标类型数据。

在一些实施例中,所述数据存储单元,包括:

数据库创建子单元,被配置为执行响应于所述图片文件中不存在文本数据块,或者所述图片文件中存在的文本数据块中已存储有数据,在所述图片文件中创建新的文本数据块;

数据存储子单元,被配置为执行将所述加密数据存储至所述新的文本数据块中。

在一些实施例中,所述加密数据获取单元,被配置为执行响应于所述目标数据为字符串类型的数据,对所述加密信息与所述目标数据进行组合,得到所述加密数据。

在一些实施例中,所述数据存储装置包括:

数据读取单元,被配置为执行响应于接收到携带所述字段的数据读取指令,从所述数据库中查询所述字段对应的加密信息;

所述数据读取单元,还被配置为执行从所述图片文件中查询所存储的加密数据中的加密信息与所述加密信息相同的文本数据块;

所述数据读取单元,还被配置为执行从查询到的文本数据块中读取所述目标数据。

在一些实施例中,所述数据读取单元,还被配置为执行:

从所述图片文件中查询文本类型对应的目标类型数据,将查询到的目标类型数据所在的至少一个数据块确定为文本数据块;

从查询到的至少一个文本数据块中确定所存储的加密数据中的加密信息与所述加密信息相同的文本数据块。

根据本公开实施例的再一方面,提供了一种终端,所述终端包括:

一个或多个处理器;

用于存储所述一个或多个处理器可执行指令的存储器;

其中,所述一个或多个处理器被配置为执行上述方面所述的数据存储方法。

根据本公开实施例的再一方面,提供一种计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方面所述的数据存储方法。

根据本公开实施例的再一方面,提供一种计算机程序产品,该计算机程序产品包括计算机程序,所述计算机程序被处理器执行以实现上述方面所述的数据存储方法。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种数据存储方法的流程图。

图2是根据一示例性实施例示出的另一种数据存储方法的流程图。

图3是根据一示例性实施例示出的另一种数据存储方法的流程图。

图4是根据一示例性实施例示出的一种数据读取方法的流程图。

图5是根据一示例性实施例示出的另一种数据读取方法的流程图。

图6是根据一示例性实施例示出的一种数据存储装置的框图。

图7是根据一示例性实施例示出的另一种数据存储装置的框图。

图8是根据一示例性实施例示出的一种终端的结构框图。

具体实施方式

为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。

需要说明的是,本公开的说明书和权利要求书及上述附图说明中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等),均为经用户授权或者经过各方充分授权的信息。

本公开实施例提供的数据存储方法,可应用于终端中安装的任一应用的数据存储的场景下。

例如,用户基于用户账号登录目标应用,在登录目标应用时需要输入用户名和密码,终端存储该用户名和密码,以使用户下次登录时直接获取已存储的用户名和密码,无需再次输入,需要保证用户名和密码的安全性,此时能够采用本公开实施例提供的数据存储方法,根据用户名和密码对应的字段“登录信息”,在数据库中查询“登录信息”对应的加密信息,对该加密信息与用户名和密码进行组合,得到加密信息,并将该加密信息存储至图片文件中的文本数据块,实现数据存储。后续需要读取用户名和密码时,再根据“登录信息”从数据库中查询对应的加密信息,根据该加密信息从图片文件中读取出用户名和密码,实现数据读取。

图1是根据一示例性实施例示出的一种数据存储方法的流程图,参见图1,该方法的执行主体为终端,包括以下步骤:

101、从数据库中查询目标数据所属的字段对应的加密信息。

其中,目标数据为终端中的任一数据,目标数据具有对应的字段,该字段用于指示目标数据的内容,数据库用于存储至少一个字段对应的加密信息,该加密信息用于对目标数据进行加密,不同的目标数据对应不同的加密信息。

102、对加密信息与目标数据进行组合,得到目标数据对应的加密数据。

对加密信息与目标数据进行组合,也即是采用加密信息对目标数据进行加密,得到目标数据对应的加密数据。其中,加密数据中包括加密信息及目标数据,加密信息与目标数据之间能够采用多种方式进行组合,但是无论是哪种组合方式,加密信息与目标数据是相互对应的。

103、将加密数据存储至图片文件中的文本数据块。

其中,图片文件中至少包括文本数据块,该文本数据块用于存储加密数据。图片文件可以是一种无损压缩的位图片格式,如PNG(Portable Network Graphic Format,便携式网络图片)文件或其他类型的图片文件。

本公开实施例提供的方法,通过数据库获取目标数据对应的加密信息,采用该加密信息对目标数据进行加密,将得到的加密数据存储在图片文件中,实现基于图片文件对目标数据的加密存储,且采用加密信息与目标数据进行组合的方式进行加密,使后续需要采用该加密信息来读取目标数据,如果不知道目标数据对应的加密信息,则无法从图片文件中读取数据,从而提高了数据的安全性。

在一些实施例中,对加密信息与目标数据进行组合,得到目标数据对应的加密数据,包括:

对加密信息、目标数据与符号进行组合,得到加密数据。

在一些实施例中,将加密数据存储至图片文件中的文本数据块中之前,数据存储方法还包括:

获取图片文件中存储的至少一个类型数据,每个类型数据用于指示每个类型数据对应的数据块所属的类型;

从至少一个类型数据中,确定目标类型数据,目标类型数据用于指示目标类型数据对应的数据块属于文本类型;

将目标类型数据对应的数据块,确定为文本数据块。

在一些实施例中,将目标类型数据对应的数据块,确定为文本数据块,包括:

从图片文件中,获取与目标类型数据相邻的字节数量,字节数量用于指示文本数据块中包含的字节的数量;

在图片文件中,将以目标类型数据为起始位置的字节数量的字节,确定为文本数据块。

在一些实施例中,将目标类型数据对应的数据块,确定为文本数据块,包括:

获取图片文件的协议信息,协议信息包括类型数据与数据块所属的类型之间的对应关系;

根据对应关系,从至少一个类型数据中,确定文本类型对应的目标类型数据。

在一些实施例中,将加密数据存储至图片文件中的文本数据块,包括:

响应于图片文件中不存在文本数据块,或者图片文件中存在的文本数据块中已存储有数据,在图片文件中创建新的文本数据块;

将加密数据存储至新的文本数据块中。

在一些实施例中,对加密信息与目标数据进行组合,得到目标数据对应的加密数据,包括:

响应于目标数据为字符串类型的数据,对加密信息与目标数据进行组合,得到加密数据。

在一些实施例中,将加密数据存储至图片文件中的文本数据块之后,数据存储方法包括:

响应于接收到携带字段的数据读取指令,从数据库中查询字段对应的加密信息;

从图片文件中查询所存储的加密数据中的加密信息与加密信息相同的文本数据块;

从查询到的文本数据块中读取目标数据。

在一些实施例中,从图片文件中查询所存储的加密数据中的加密信息与加密信息相同的文本数据块,包括:

从图片文件中查询文本类型对应的目标类型数据,将查询到的目标类型数据所在的至少一个数据块确定为文本数据块;

从查询到的至少一个文本数据块中确定所存储的加密数据中的加密信息与加密信息相同的文本数据块。

图2是根据一示例性实施例示出的另一种数据存储方法的流程图,参见图2,该方法的执行主体为终端,包括以下步骤:

201、终端获取待存储的目标数据。

本公开实施例以终端中安装的目标应用为例进行说明,目标应用为即时通信应用、视频应用、短视频应用、游戏应用或其他应用。

其中,目标数据为用户基于终端在目标应用中输入的数据,例如,目标数据为用户输入的用户名、密码、身份信息等数据;或者,目标数据为其他电子设备发送给当前终端的数据,例如,目标数据为其他终端发送给当前终端的聊天信息,或者目标数据为目标应用对应的服务器发送给终端的页面内容。

在一些实施例中,终端还会获取目标数据所属的字段,便于后续根据该字段确定目标数据对应的加密信息。其中,目标数据所属的字段用于指示目标数据的内容,例如,目标数据为电话号码,则对应的字段为“联系方式”字段;目标数据为链接地址,则对应的字段为“链接地址”字段。

202、终端从数据库中查询目标数据所属的字段对应的加密信息。

其中,数据库用于存储至少一个字段对应的加密信息,每个字段对应的加密信息为预先设置的,或者是终端首次存储该字段对应的目标数据时随机设置的,也即是终端首次获取到该字段对应的目标数据后,随机确定该字段对应的加密信息,将该加密信息与该字段对应存储在数据库中。

在一些实施例中,对于终端中安装的多个应用,不同的应用可以分别设置对应的数据库,或者,不同的应用共用一个数据库,在共用一个数据库的情况下,需要将字段、应用标识以及加密信息对应存储,以区分不同应用的字段对应的加密信息。

在一些实施例中,任两个字段对应的加密信息不相同,从而避免后续基于加密信息读取数据时读取出错。这种情况下,终端随机设置字段对应的加密信息时,需要先确定数据库中已存在的加密信息,然后设置与数据库中已存在的加密信息不同的加密信息。

终端根据目标数据所属的字段,从数据库中查询该字段对应的加密信息,将该加密信息作为该目标字段对应的加密信息。

203、终端对加密信息与目标数据进行组合,得到目标数据对应的加密数据。

终端采用任一组合方式,对加密信息与目标数据进行组合,得到目标数据对应的加密数据。

在一些实施例中,终端对加密信息、目标数据与符号进行组合,得到加密数据。其中,符号为任一符号,例如,符号为“_”、“:”或其他符号,且符号为一个或多个。这种采用加密信息、目标数据与符号进行组合的加密方式,使后续读取数据时不仅需要知道加密信息,还需要知道组合中所采用的符号,进一步提高了数据的安全性。

在一些实施例中,在加密格式为加密信息位于目标数据之前,且加密信息与目标数据之间存在符号的格式的情况下,对加密信息与目标数据进行组合,得到目标数据对应的加密数据,包括:在目标数据之前添加加密信息,且在加密信息与目标数据之间添加符号,得到加密数据。

或者,在加密格式为加密信息位于目标数据之后,且加密信息与目标数据之间存在符号的格式的情况下,对加密信息与目标数据进行组合,得到目标数据对应的加密数据,包括:在目标数据之后添加加密信息,且在加密信息与目标数据之间添加符号,得到加密数据。

上述确定加密数据的方式中,加密信息与目标数据之间能够采用不同的方式进行组合,加密信息与目标数据的组合方式多样,且加密信息与目标数据之间还能够包括符号,通过符号将加密信息和目标数据分为两部分,使后续读取数据时,利用符号方便地对加密信息和目标数据进行区分。

当然,加密格式还可以为其他格式,加密格式中只要包括加密信息和目标数据即可,本公开实施例对加密格式的形式不做限制。

204、终端获取图片文件。

其中,图片文件可以为一种无损压缩的位图片格式,图片文件中包括多种类型的数据块,不同类型的数据块中存储有不同的数据。例如,图片文件包括文件头数据块、调色板数据块、图像数据块、文本数据块、图像结束数据块等数据块。

本公开实施例中,终端采用图片文件中包括的文本数据块来存储目标数据。其中,图片文件中可以包括一个或多个文本数据块。

在一些实施例中,终端保存一张PNG格式的图片,该图片对应的文件即为图片文件,也即是终端中存储有一张PNG图片,将该PNG图片对应的图片文件作为存储目标数据的文件,这种情况下,终端需要存储任一PNG图片,后续在删除该PNG图片时,会删除对应的图片文件中存储的数据;或者图片文件为终端按照图片文件的格式,创建的图片文件,该图片文件中与图像相关的数据块中可以不存储任何数据,也就是说,终端仅是采用图片文件中的文本数据块来存储数据,对于该图片文件中的其他数据块中是否存储有数据并不限制。

本公开实施例中,文本数据块包括多个字段,每个字段存储有不同的数据,下面对文本数据块的结构进行说明:

(1)文本数据块中包括长度字段,该长度字段用于存储字节数量,该字节数量用于指示文本数据块中包含的字节的数量,也即是,该字节数量用于指示文本数据块中的数据长度。

(2)文本数据块中还包括类型字段,该类型字段用于存储类型数据,该类型数据用于指示所在的数据块的类型。其中,为了便于描述和查询图片文件,类型数据采用大写或小写的ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)来表示。

对于该类型字段,在一些实施例中,图片文件具有对应的协议信息,该协议信息包括类型数据与数据块所属的类型之间的对应关系,终端获取该协议信息,根据该对应关系,来确定不同的类型对应的类型数据。

(3)文本数据块中还包括数据字段,该数据字段用于存储数据,即终端在文本数据块中存储的目标数据是与该数据字段对应存储的。其中,该数据字段的长度可以为0,也即是数据字段中可以不存储数据。

(4)文本数据块中还包括检测字段,该检测字段用于存储检测数据,该检测数据用于指示类型字段存储的类型数据和数据字段中存储的数据是否被修改。其中,检测数据是对类型字段存储的类型数据的长度及数据字段存储的数据的长度进行计算得到的,如果检测字段存储检测数据与类型字段和数据字段的实际长度不符,则表示类型字段或者数据字段中存储的数据被修改过,如果相符,则表示未被修改过。

另外,对于图片文件,在一些实施例中,该图片文件除了包括文本数据块之外,还包括以下组成部分:

(1)图片文件中包括文件标志,该文件标志用于指示当前文件为图片文件。对于任一文件,如果该文件中包括文件标志,则表示该文件为图片文件。

(2)图片文件中包括文件头数据块,该文件头数据块用于指示文件中数据的起始位置。该文件头数据块作为图片文件中的第一个数据块,位于图片文件的头部,且一个图片文件中仅包括一个文件头数据块。在一些实施例中,图片文件中包括PNG图片相关的图像数据的情况下,该文件头数据块中还包括图像数据的简介信息。

(3)图片文件中包括调色板数据块,该调色板数据块用于存储图像中的彩色变换数据,该调色板数据块位于图像数据块之前。

(4)图片文件中包括图像数据块,图像数据块用于存储图像数据,图片文件中可包括连续的多个图像数据块。

(5)图片文件中包括图像结束数据块,该图像结束数据块用于指示文件中的数据结束,位于图片文件中的尾部。例如,图像结束数据块中包括结束标志,该结束标志表示文本数据块到这里结束,之后的数据为下一个数据块中的数据。

(6)图片文件中还包括除文本数据块之外的其他可选数据块,例如,背景颜色数据块、图像直方图数据块、图像最后修改时间数据块、压缩文本数据块等数据块。

在一些实施例中,终端获取到图片文件后,确定该图片文件中是否存在文本数据块,如果该图片文件中不存在文本数据块,或者该图片文件中存在文本数据块,但是该文本数据块中已存储有数据,则需要在该图片文件中创建新的文本数据块。

205、终端确定图片文件中的文本数据块,将加密数据存储至该文本数据块。

本公开实施例中,终端先确定图片文件中的文本数据块的位置,即先定位图片文件中的文本数据块,然后将加密数据存储到确定的文本数据块中。

在一些实施例中,图片文件中包括多个类型的数据块,终端获取图片文件中存储的至少一个类型数据,每个类型数据用于指示该类型数据对应的数据块所属的类型;从至少一个类型数据中,确定目标类型数据,该目标类型数据用于指示目标类型数据对应的数据块属于文本类型;将目标类型数据对应的数据块,确定为文本数据块。其中,数据块属于文本类型即表示该数据块为文本数据块。

在一些实施例中,终端从至少一个类型数据中,确定目标类型数据,包括:终端获取图片文件的协议信息,该协议信息包括类型数据与数据块所属的类型之间的对应关系,根据该对应关系,从至少一个类型数据中,确定文本类型对应的目标类型数据。根据协议信息确定目标类型数据,保证类型数据与数据块所属的类型之间的对应关系的统一性,避免不同的图片文件采用不同的对应关系。

在一些实施例中,终端将加密数据存储至文本数据块,包括:终端在图片文件中创建了新的文本数据块的情况下,将加密数据存储至新的文本数据块中,从而将加密数据存储在图片文件中。这种情况下,图片文件中能够包括多个文本数据块,在图片文件中没有可存储目标数据的文本数据块时,创建新的文本数据块来存储数据,从而实现在一个图片文件中的多个文本数据块中存储数据,以减少图片文件的数量。

在一些实施例中,文本数据块用于存储字符串类型的数据,因此终端获取到目标应用中的目标数据后,确定该目标数据的数据类型是否为字符串类型,在目标数据为字符串类型的数据的情况下,执行上述存储目标数据的步骤,即终端响应于目标数据为字符串类型的数据,对加密信息与目标数据进行组合,得到加密数据,在文本数据块中存储该加密数据。其中,字符串类型是编程语言中表示文本的数据类型,字符串类型的数据包括数字、字母、下划线等数据。

在一些实施例中,由于数据块是由多个字节组成的,根据类型数据仅是确定了数据块中类型字段所在的位置,而不能够确定完整的文本数据块的位置,因此,终端在实现文本数据块的定位的同时,还需要确定该文本数据块对应的字节数量,以定位完整的文本数据块,使定位的文本数据块的位置更加精确。终端从图片文件中,获取与目标类型数据相邻的字节数量,该字节数量用于指示文本数据块中包含的字节的数量;在图片文件中,将以目标类型数据为起始位置的该字节数量的字节,确定为文本数据块。

本公开实施例中的数据存储流程,参见图3所示的流程图,终端将目标数据及加密信息,按照加密格式进行匹配,得到加密数据,在图片文件中添加文本数据块,将得到的加密数据添加至新添加的文本数据块中,保存图片文件。

另外,需要说明的一点是,在图片文件中存储目标数据之后,终端还能够根据该图片文件,向用户展示PNG图片,但是对于该PNG图片来说,虽然对应的文本数据块中存储了目标数据,但是由于该目标数据是基于加密信息加密后存储的,终端在显示PNG图片时,并不会在PNG图片中显示存储的目标数据。从而实现了基于图片文件的数据隐写加密存储。

需要说明的另一点是,本公开实施例仅是以一个图片文件为例进行说明,在另一实施例中,终端中包括多个图片文件时,终端将目标数据存储至图片文件中后,还会将该图片文件对应的文件标识与加密信息对应存储在数据库中,便于后续读取数据时,能够根据该文件标识确定对应的图片文件,从确定的图片文件中读取数据。

需要说明的另一点是,本公开实施例仅是以任一目标应用为例进行说明,在另一实施例中,终端中还安装有其他应用时,其他应用的数据的存储方式与目标应用的数据的存储方式同理。

本公开实施例提供的方法,通过数据库获取目标数据对应的加密信息,采用该加密信息对目标数据进行加密,将得到的加密数据存储在图片文件中,实现基于图片文件对目标数据的加密存储,且采用加密信息与目标数据进行组合的方式进行加密,使后续需要采用该加密信息来读取目标数据,在不知道目标数据对应的加密信息的情况下,则无法从图片文件中读取数据,提高了数据的安全性。

并且,由于图片文件采用无损压缩算法对数据进行存储,而对于存储相同的数据量的数据,由于so二进制文件中除了存储数据之外,还会存储与该数据相关的运行代码。因此图片文件的体积小于so二进制文件的体积,图片文件较小,从而对于相同的存储空间,图片文件能够存储更多的数据。

本公开实施例中,采用上述图2所示的数据存储方法存储数据之后,还能够采用相应的数据读取方法,将存储的数据从图片文件中读取出来,通过下面图4所示的实施例对数据读取过程进行说明。

图4是根据一示例性实施例示出的一种数据读取方法的流程图。参见图4,该方法的执行主体为终端,包括以下步骤:

401、终端响应于携带字段的数据读取指令,从数据库中查询该字段对应的加密信息。

其中,数据读取指令用于指示查询携带的字段对应的加密信息,并读取该字段对应的目标数据。

本公开实施例以目标应用为例进行说明。在一些实施例中,终端启动目标应用后,显示目标应用的某个页面时,会生成数据读取指令,该数据读取指令中携带基于该页面确定的字段,终端响应于该数据读取指令,从数据库中查询该字段对应的加密信息。

402、终端从图片文件中查询所存储的加密数据中的加密信息与加密信息相同的文本数据块。

终端获取到加密信息后,遍历图片文件中的文本数据块,查询所存储的加密数据中的加密信息与获取到的加密信息相同的文本数据块,则能够确定该文本数据块中所存储的加密数据中的目标数据即为待读取的数据。

在一些实施例中,终端从图片文件中查询文本类型对应的目标类型数据,将查询到的目标类型数据所在的至少一个数据块确定为文本数据块,基于查询到的加密信息,从查询到的至少一个文本数据块中确定与该加密信息匹配的文本数据块。终端先确定图片文件中的至少一个文本数据块,再从确定的至少一个文本数据块中确定加密信息对应的加密数据所在的文本数据块,从而只需查询至少一个文本数据块,无需遍历图片文件中的全部数据块,从而提高了数据提取的效率。

403、终端从查询到的文本数据块中读取加密信息对应的目标数据。

终端在读取目标数据时,如果加密信息与文本数据块中的加密信息不相同,则无法从文本数据块中读取出目标数据,在加密信息与文本数据块中的加密信息相同的情况下,才能够读取出加密信息对应的目标数据。

在一些实施例中,终端从文本数据块中读取出加密数据,然后根据加密信息与目标数据存储时的加密格式,确定加密数据中的加密信息部分和目标数据部分,从加密数据中读取出目标数据。

本公开实施例的数据读取流程,例如,参见图5所示的流程图,终端读取图片文件,定位到图片文件中的文本数据块,从图片文件中读取加密数据,并缓存该加密数据,对加密数据与加密格式进行匹配,根据加密信息,从加密数据中读取目标数据。

本公开实施例提供了的方法,通过从数据块中查询加密信息,采用查询到的加密信息从图片文件中读取目标数据,实现数据读取,而在不知道加密信息的情况下,则无法从图片文件中读取数据,提高了数据的安全性。

并且,先确定图片文件中的至少一个文本数据块,再从确定的至少一个文本数据块中确定加密信息对应的加密数据所在的文本数据块,从而只需查询至少一个文本数据块,无需遍历图片文件中的全部数据块,从而提高了数据提取的效率。

图6是根据一示例性实施例示出的一种数据存储装置的框图。参见图6,该装置包括:

加密信息查询单元601,被配置为执行从数据库中查询目标数据所属的字段对应的加密信息,数据库用于存储至少一个字段对应的加密信息;

加密数据获取单元602,被配置为执行对加密信息与目标数据进行组合,得到目标数据对应的加密数据;

数据存储单元603,被配置为执行将加密数据存储至图片文件中的文本数据块。

本公开实施例提供的装置,通过数据库获取目标数据对应的加密信息,采用该加密信息对目标数据进行加密,将得到的加密数据存储在图片文件中,实现基于图片文件对目标数据的加密存储,且采用加密信息与目标数据进行组合的方式进行加密,使后续需要采用该加密信息来读取目标数据,在不知道目标数据对应的加密信息的情况下,则无法从图片文件中读取数据,提高了数据的安全性。

在一些实施例中,加密数据获取单元602,被配置为执行对加密信息、目标数据与符号进行组合,得到加密数据。

在一些实施例中,参见图7,该数据存储装置还包括:

数据块确定单元604,被配置为执行获取图片文件中存储的至少一个类型数据,每个类型数据用于指示每个类型数据对应的数据块所属的类型;

数据块确定单元604,还被配置为执行从至少一个类型数据中,确定目标类型数据,目标类型数据用于指示目标类型数据对应的数据块属于文本类型;

数据块确定单元604,还被配置为执行将目标类型数据对应的数据块,确定为文本数据块。

在一些实施例中,参见图7,数据块确定单元604,还被配置为执行:

从图片文件中,获取与目标类型数据相邻的字节数量,字节数量用于指示文本数据块中包含的字节的数量;

在图片文件中,将以目标类型数据为起始位置的字节数量的字节,确定为文本数据块。

在一些实施例中,参见图7,数据块确定单元604,还被配置为执行:

获取图片文件的协议信息,协议信息包括类型数据与数据块所属的类型之间的对应关系;

根据对应关系,从至少一个类型数据中,确定文本类型对应的目标类型数据。

在一些实施例中,参见图7,数据存储单元603,包括:

数据库创建子单元6031,被配置为执行响应于图片文件中不存在文本数据块,或者图片文件中存在的文本数据块中已存储有数据,在图片文件中创建新的文本数据块;

数据存储子单元6032,被配置为执行将加密数据存储至新的文本数据块中。

在一些实施例中,加密数据获取单元602,被配置为执行响应于目标数据为字符串类型的数据,对加密信息与目标数据进行组合,得到加密数据。

在一些实施例中,参见图7,该数据存储装置包括:

数据读取单元605,被配置为执行响应于接收到携带字段的数据读取指令,从数据库中查询字段对应的加密信息;

数据读取单元605,还被配置为执行从图片文件中查询所存储的加密数据中的加密信息与加密信息相同的文本数据块;

数据读取单元605,还被配置为执行从查询到的文本数据块中读取目标数据。

在一些实施例中,参见图7,数据读取单元605,还被配置为执行:

从图片文件中查询文本类型对应的目标类型数据,将查询到的目标类型数据所在的至少一个数据块确定为文本数据块;

从查询到的至少一个文本数据块中确定所存储的加密数据中的加密信息与加密信息相同的文本数据块。

关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

在示例性实施例中,提供了一种电子设备,该电子设备包括一个或多个处理器,以及用于存储该一个或多个处理器可执行指令的存储器;其中,该一个或多个处理器被配置为执行上述实施例中的数据存储方法。

在一种可能实现方式中,该电子设备提供为终端。图8是根据一示例性实施例示出的一种终端800的结构框图。该终端800可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端800还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

终端800包括有:处理器801和存储器802。

处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一条程序代码,该至少一条程序代码用于被处理器801所执行以实现本公开中方法实施例提供的数据读取方法。

在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。

外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路804用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本公开对此不加以限定。

显示屏805用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置在终端800的前面板;在另一些实施例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在另一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。

定位组件808用于定位终端800的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件808可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯定位系统或欧盟的伽利略定位系统的定位组件。

电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。

加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3D动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器813可以设置在终端800的侧边框和/或显示屏805的下层。当压力传感器813设置在终端800的侧边框时,可以检测用户对终端800的握持信号,由处理器801根据压力传感器813采集的握持信号进行左右手识别或快捷操作。当压力传感器813设置在显示屏805的下层时,由处理器801根据用户对显示屏805的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器814用于采集用户的指纹,由处理器801根据指纹传感器814采集到的指纹识别用户的身份,或者,由指纹传感器814根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器801授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器814可以被设置在终端800的正面、背面或侧面。当终端800上设置有物理按键或厂商Logo时,指纹传感器814可以与物理按键或厂商Logo集成在一起。

光学传感器815用于采集环境光强度。在一个实施例中,处理器801可以根据光学传感器815采集的环境光强度,控制显示屏805的显示亮度。具体地,当环境光强度较高时,调高显示屏805的显示亮度;当环境光强度较低时,调低显示屏805的显示亮度。在另一个实施例中,处理器801还可以根据光学传感器815采集的环境光强度,动态调整摄像头组件806的拍摄参数。

接近传感器816,也称距离传感器,设置在终端800的前面板。接近传感器816用于采集用户与终端800的正面之间的距离。在一个实施例中,当接近传感器816检测到用户与终端800的正面之间的距离逐渐变小时,由处理器801控制显示屏805从亮屏状态切换为息屏状态;当接近传感器816检测到用户与终端800的正面之间的距离逐渐变大时,由处理器801控制显示屏805从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图8中示出的结构并不构成对终端800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述数据存储方法中终端所执行的步骤。可选地,计算机可读存储介质可以是ROM(只读存储器,Read Only Memory)、RAM(随机存取存储器,Random Access Memory)、CD-ROM(只读光盘,Compact Disc Read-Only Memory)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序被处理器执行以实现上述数据存储方法。

本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 数据存储方法、数据读取方法、装置、终端及存储介质
  • 一种数据存储方法、装置、终端设备及存储介质
技术分类

06120113162257