CN106156649A - 一种Android系统的数据保护方法及系统 - Google Patents

一种Android系统的数据保护方法及系统 Download PDF

Info

Publication number
CN106156649A
CN106156649A CN201510171440.8A CN201510171440A CN106156649A CN 106156649 A CN106156649 A CN 106156649A CN 201510171440 A CN201510171440 A CN 201510171440A CN 106156649 A CN106156649 A CN 106156649A
Authority
CN
China
Prior art keywords
android system
sequence
data
tree leaf
value pair
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.)
Granted
Application number
CN201510171440.8A
Other languages
English (en)
Other versions
CN106156649B (zh
Inventor
孙向作
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TCL Corp
Original Assignee
TCL Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by TCL Corp filed Critical TCL Corp
Priority to CN201510171440.8A priority Critical patent/CN106156649B/zh
Publication of CN106156649A publication Critical patent/CN106156649A/zh
Application granted granted Critical
Publication of CN106156649B publication Critical patent/CN106156649B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种Android系统的数据保护方法及系统,通过获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据;利用数据库中索引机制在其中嵌入数字水印,从SQLite底层结构角度实现对Android系统中的数据进行保护,更有效地保护了Android系统中的数据,减少了用户的损失,带来了大大的方便。

Description

一种Android系统的数据保护方法及系统
技术领域
本发明涉及数据保护技术领域,尤其涉及的是一种Android系统的数据保护方法及系统。
背景技术
随着移动终端技术的不断发展,手机等移动终端的使用越来越普及。移动终端一般采用苹果系统或Android系统。Android系统中数据存储都是采用SQLite数据库。SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。大多数对Android系统中的数据都是采用加密算法对SQLite数据库中的数据进行加密,但是这种加密方式加密效果不好,容易被破解,且被破解后会直接得到被加密的数据,对数据起到的保护效果低,给用户带来损失。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,提供一种Android系统的数据保护方法及系统,旨在解决现有的Android系统的数据保护效果不好,容易被破解的问题。
本发明解决技术问题所采用的技术方案如下:
一种Android系统的数据保护方法,其中,包括以下步骤:
S10、获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;
S20、对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。
所述的Android系统的数据保护方法,其中,在所述步骤S20之后,还包括:
S30、当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;
S40、对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,返回步骤S10。
所述的Android系统的数据保护方法,其中,所述步骤S10具体包括:
S11、扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;
S12、根据所述数据库文件获取对应的系统表;
S13、根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
所述的Android系统的数据保护方法,其中,所述步骤S20具体包括:
S21、根据所述B+tree叶子页键值对列表序列的大小得到数字水印;
S22、根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
所述的Android系统的数据保护方法,其中,所述步骤S21具体包括:
将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印。
一种Android系统的数据保护系统,其中,包括:
序列获取模块,用于获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;
水印嵌入模块,用于对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。
所述的Android系统的数据保护系统,其中,还包括:
序列恢复模块,用于当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;
更新模块,用于对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,重新获取数据库文件变化后对应的B+tree叶子页键值对列表序列,并嵌入数字水印重新排序生成对应的新序列。
所述的Android系统的数据保护系统,其中,所述序列获取模块包括:
数据库扫描单元,用于扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;
系统表获取单元,用于根据所述数据库文件获取对应的系统表;
序列获取单元,用于根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
所述的Android系统的数据保护系统,其中,所述水印嵌入模块包括:
水印获取单元,用于根据所述B+tree叶子页键值对列表序列的大小得到数字水印;
水印嵌入单元,用于根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
所述的Android系统的数据保护系统,其中,所述水印获取单元,用于将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印。
本发明所提供的一种Android系统的数据保护方法及系统,有效地解决了现有的Android系统的数据保护效果不好,容易被破解的问题,通过获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据;利用数据库中索引机制在其中嵌入数字水印,从SQLite底层结构角度实现对Android系统中的数据进行保护,更有效地保护了Android系统中的数据,即使被破解也不能得到直接的数据,减少了用户的损失,带来了大大的方便。
附图说明
图1为本发明提供的Android系统的数据保护方法较佳实施例的流程图。
图2为本发明提供的Android系统的数据保护系统较佳实施例的结构框图。
具体实施方式
本发明提供一种Android系统的数据保护方法及系统,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明提供的Android系统的数据保护方法较佳实施例的流程图,如图所示,所述方法包括以下步骤:
步骤S100、获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;
步骤S200、对所述B+treeB+TREE叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。
下面结合具体的实施例对上述步骤进行详细的描述。
在步骤S100中,获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列。具体来说,所述Android系统为常见的移动终端操作系统。Android系统的SQLite数据库文件中,页的类型可以是:Btree页、free(空闲)页或overflow (溢出)页,每个页面有其对应的文件结构。一个数据库文件中肯定有Btree页,对于空闲页或溢出页可能有也可能没有。每一个Btree用于存储一个表的索引或表的真实数据,表索引采用B-tree格式存储,表的真实数据采用B+tree格式存储。目前大部分数据库系统及文件系统都采用B-Tree或其变种B+Tree作为索引结构,B+Tree是应文件系统所需而产生的一种B-tree的变形树。此乃现有技术。
进一步地,所述步骤S100具体包括:S110、扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;S120、根据所述数据库文件获取对应的系统表;S130、根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
具体来说,获取B+tree叶子页键值对列表序列流程如下:由于Android系统中数据库文件以.databases、.tables、.db、和.sqlite作为后缀名,而数据库文件存储的目录一般是/data/data/某应用/database/中,所以通过扫描系统/data/data目录中文件所有后缀为以上数据库后缀的文件,便可获取到Android系统中的数据库文件。
在SQLite数据库文件中,一旦建表,就会在系统目录(System Catalogue)下自动生成系统表sqlite_master。SQLite数据库中的sqlite_master表中的记录具有固定格式,每条记录包含五个字段,包括type、name、tbl_name、rootpage和sql字段,如下所示:
CREATE TABLE sqlite_master (
type TEXT,
name TEXT,
tbl_name TEXT,
rootpage INTEGER,
sql TEXT
);
其中字段type取值是table(表)或者index(索引),字段name和tbl_name是对应的表名或者索引名,字段rootpage是根页面个数,当字段type是表时,字段sql是就是相应的建表语句,当字段type是索引时,字段sql是相应的建索引语句。
表sqlite_master 作为 SQLite 数据库的系统表,本身是以 B+tree形式组织的,数据库的 schema 信息都保存在 sqlite_master 表的叶子页中。
由于每一数据库文件都有系统表sqlite_master。如上所述,若type 字段是 ‘table’,则name 字段就是表的名字。所以,要获得数据库中所有表的列表,可使用SELECT语句查询系统表sqlite_master。举例如下:
建立一个数据库表,并在/data/data/xxx/database/目录下执行如下命令:
sqlite> select * from sqlite_master;
type = table
name = ChannelRecordTable
tbl_name = ChannelRecordTable
rootpage = 4
sql = CREATE TABLE ChannelRecordTable (_id integer primary key autoincrement, channel_name text not null, channel_id text not null, channel_code text not null )
可获取到系统表sqlite_master的各个字段值,也即数据库文件中表名为ChannelRecordTable,表列字段为_id、channel_name、channel_id与channel_code。
数据库中所有的页都是以1开始顺序编号的。一个数据库可以是由多个Btree页组成的—每张表以及每个索引各对应一个Btree(表使用B+tree;索引使用B-tree)。数据库中每张表或索引都以根页面作为第一页。所有的索引和表的根页面都存储在sqlite_master表中。
数据库的第1页比较特殊。第1页的前100B包含了文件头,用于说明数据库文件,它包含了诸如这样的信息:库版本、模式版本、页大小、编码方式、是否启动自动清理
B-tree中的页由一系列B-tree记录组成,这些记录也称为有效载荷。这些记录并非实际存储的数据库记录,即表中有多个列的格式,而是更为原始的格式。一个B-tree记录(有效载荷)仅由两个域组成:键值域和数据域。键值域是每个数据库表中所包含的ROWID值或主键值;在B-tree中,数据域可以包含任意类型的内容。最终,数据库记录信息存储在数据域中。B-tree用来保持记录有序并方便记录的查询,同时,键值域能够完成B-tree的主要工作。此外,记录(有效载荷)的大小是可变的,这取决于内部键值域和数据域的大小。一般而言,每个页拥有多个有效载荷。
B-tree记录按键值序存储。所有的键值在一个B-tree中必须是唯一的(由于键值对应于rowid主键,并且SQLite很重视该域,所以唯一性是可以保证的)。表使用B+tree定义在内部页中。
B+tree的根页面和内部节点页都用于搜索导航。这些页中的数据域均指向下一层页,这些页只包含键值。所有的数据库记录都存储在叶子页中,在叶子页层,记录和页按键值序排列,以便B-tree游标能够遍历记录。
如上所述,根据表名(name字段)可在系统表sqlite_master中得知其根页编号。定位到根页后分析Btree中所有的页节点,根据页头中页类型标志找到所有B+tree叶子页,即可依据页的大小偏移量定位到表名的数据所在页。根据Sqlite中规定,页类型标志:页头中第1个字节是区分B+tree和B-tree的内部页和叶子页的标志位。该字节的值是OxOD时,表示B+tree的叶子页;为0x05时,表示B+tree的内部页;为OxOA时,表示B-tree的叶子页;为0x02时,表示B-tree的内部页。要找到表名所有B+tree叶子页,根据页类型标志,找到页起始为“0D”的标志,即找到所有数据存储区域。
获取B+tree叶子页键值对列表序列方法如下:
首先根据函数sqlite3BtreeCursor()创建一个指向当前B+tree的游标,然后根据函数sqlite3BtreeFirst()获取到游标的第一条记录,通过函数sqlite3BtreeKey()和函数sqlite3BtreeData()分别获取到游标中第一条记录的关键字和数据,接着调用函数sqlite3BtreeNext()将游标指向第二条记录,同样通过函数sqlite3BtreeKey()和函数sqlite3BtreeData()分别获取到游标中第二条记录的关键字和数据,以此类推迭代,直到获取到游标最后一条记录的关键字和数据。至此,已获取到B+tree叶子页中全部键值对列表序列。
在步骤S200中,对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。具体来说,数字水印,是指在数字化的数据内容中嵌入的记号。被嵌入的记号一般情况下不被用户见到或察觉到。本发明中,提出将数字水印嵌入到建有索引树的结构中,在不影响索引正常工作的前提下,可以通过数字水印,检测到数据是否为非法篡改,从而有效保护系统中的数据。
根据水印的健壮性分类,数字水印可分为:鲁棒性水印和易损水印。鲁棒水印是指对于某些改变,非常敏感,不允许修改,常用于版权;易损水印是指对于某些改变容易察觉,但允许修改,并改变自身来记录数据被恶意修改的位置、类型的信息。针对以上特性,本发明采用易损水印。
将B+tree叶子页键值对列表序列简称为序列。根据嵌入的水印对序列进行重新排序。也就是说,序列首先按照某一逻辑顺序进行排列,然后提供一个数字水印,通过水印嵌入算法,得到嵌入水印后的系列。相反,给出含有水印的序列和水印,就可以得到原始序列,根据原始序列是否是按照先前的顺序排序,来判定数据是否被篡改。
进一步地,所述步骤S200具体包括:S210、根据所述B+tree叶子页键值对列表序列的大小得到数字水印;S220、根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
具体来说,对序列嵌入数字水印流程如下:根据数学原理,对于每一个十进制整数 都能被表述为。例如,十进制数,则399表示成为阶乘数字系统中的数字为“31211”。需要说明的是,这里的k为一正整数,具体值是根据十进制整数的阶乘和所确定的,如上述举例。
水印是一个数字序列记为,该水印的长度由B+tree叶子页键值对列表序列的大小决定。若结点中数据的个数为个,那么水印则为位,并且,第位上数字的取值范围是。这是由阶乘数字系统的性质所决定的。
本发明将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印,利用数字水印对原始序列循环右移操作实现数字水印的嵌入。首先,将整个原始序列循环右移次,然后,将循环后的序列的第一位固定,将剩下的序列循环右移次,之后依次类推,直到序列最后一位为止。
B+tree中的叶级结点按照自身的索引机制排好顺序。获取到B+tree叶子页键值对列表序列的大小,记为,根据,将其表示为阶乘数字系统。比如,序列大小为399,则其对应的阶乘数字系统中的数字为“31211”。
下面举例说明水印的嵌入过程:为了便于描述,这里假设获取的序列顺序为,即B+tree叶子页键值对为,即指向,依次类推,指向。其中即键,即值。
若嵌入水印为“31211”,水印的第一位上为3,则整个序列先循环右移3次,得到序列
水印的第二位上为1,则整个序列的第一个结点固定,剩下序列循环右移1次,得到序列
水印的第三位上为2,则整个序列的前两个结点固定,剩下序列
循环右移2次,得到序列
水印的第四位上为1,则整个序列的前三个结点固定,剩下序列循环右移1次,得到序列
最后,水印的第五位上为1,则整个序列的前四个结点固定,剩下序列循环右移1次,得到序列,这个序列则为嵌入水印的序列。
原序列,通过上述水印嵌入后,得到嵌入水印的序列为
本发明提供的Android系统的数据保护方法,在系统初始化时,通过扫描系统文件查找系统中数据库文件,根据数据库文件获取系统表sqlite_master,根据系统表sqlite_master获取B+tree叶子页,从而获取B+tree叶子页键值对列表序列并对该序列嵌入数字水印,对序列重新排序以生成新序列,从而保护系统中数据。
由于在实际应用时, Android系统数据库操作包括查询和更新,其中更新包括插入数据、删除数据和更新数据。在数据库操作之前,需要对嵌入水印的序列进行数据恢复。进一步地,在所述步骤S200之后还包括:S300、当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;
S400、对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,返回步骤S100。
在实际应用时,系统运行时,通过注册监听数据库变化监听器,当数据库数据变化时,通过回调函数获取到数据库变化,在数据库变化之前,根据水印和嵌入水印的序列获取原序列。
通过Android系统中函数ContentResolver.registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)注册监听数据库数据变化,其中参数uri是Uri类型,是需要监听的数据库的uri(统一资源标识符,Uniform Resource Identifier),与监听数据库的表一一对应,这里通过系统表sqliet_mastar中table字段可获取相应的表名,参数notifyForDescendents需设置为true,即使能监听功能,参数observer则是需要的ContentObserver。当数据有变化时,ContentObserver的onChange(boolean selfChange, Uri uri)回调函数就会被执行。
首先,如上所述,在系统中通过函数ContentResolver.registerContentObserver()注册需要监听的数据库。再次,自定义ContentObserver,在其回调函数onChange()中实现以下功能:1、先根据水印和嵌入水印的序列获取到原序列;2、进行数据库相关操作;3、获取数据库更新的序列;4、对数据库更新的序列嵌入水印。
然后,根据嵌入水印的序列和嵌入的数字水印,得到数据的原始序列。如上述嵌入水印的方法,嵌入水印的序列为,根据嵌入水印为“31211”,则可获取原序列。数据恢复与嵌入水印方法相反,具体方法如下:
嵌入水印的序列为,水印的最后一位上为1,整个序列的前四个结点固定,剩下序列循环左移1次,得到序列,则当前整个序列为
水印的倒数第二位上为1,整个序列的前三个结点固定,剩下序列循环左移1次,得到序列,则当前整个序列为
水印的倒数第三位上为2,则整个序列的前两个结点固定,剩下序列
循环左移2次,得到序列,则当前整个序列为
水印的倒数第四位上为1,则整个序列的前一个结点固定,剩下序列循环左移1次,得到序列,则当前整个序列为
最后,水印的倒数第五位上为3,则整个序列循环左移3次,得到序列,这个序列则为原序列,进而便可得到原数据库文件。
然后,对数据库进行操作,当数据库操作完毕(即数据库变化后),返回步骤S100,重新获取数据库变化后的B+tree叶子页键值对列表序列,对变化后的数据库嵌入水印,对该序列嵌入数字水印重新排序以生成新序列,从而实现实时动态保护Android系统中的数据。
进一步地,本发明在系统运行时,通过注册监听数据库变化监听器,当数据库数据变化时,通过回调函数获取到数据库变化,在数据库变化之前,根据水印和嵌入水印的序列获取原序列,然后对数据库进行操作,当数据库操作完毕(即数据库变化后),获取数据库变化后的序列,并对该序列嵌入数字水印重新排序以生成新序列,从而实现一种实时动态保护Android系统中的数据的方法。
基于上述Android系统的数据保护方法,本发明还提供了一种Android系统的数据保护系统,如图2所示,所述系统包括:
序列获取模块10,用于获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;具体如步骤S100所述;
水印嵌入模块20,用于对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据;具体如步骤S200所述。
进一步地,所述Android系统的数据保护系统还包括:
序列恢复模块,用于当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;具体如步骤S300所述;
更新模块,用于对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,重新获取数据库文件变化后对应的B+tree叶子页键值对列表序列,并嵌入数字水印重新排序生成对应的新序列;具体如步骤S400所述。
进一步地,所述序列获取模块10包括:
数据库扫描单元,用于扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;
系统表获取单元,用于根据所述数据库文件获取对应的系统表;
序列获取单元,用于根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
进一步地,所述水印嵌入模块20包括:
水印获取单元,用于根据所述B+tree叶子页键值对列表序列的大小得到数字水印;
水印嵌入单元,用于根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
进一步地,所述水印获取单元,用于将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印。
综上所述,本发明提供的一种Android系统的数据保护方法及系统,通过获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据;利用数据库中索引机制在其中嵌入数字水印,从SQLite底层结构角度实现对Android系统中的数据进行保护,更有效地保护了Android系统中的数据,即使被破解也不能得到直接的数据,减少了用户的损失,带来了大大的方便。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (10)

1.一种Android系统的数据保护方法,其特征在于,包括以下步骤:
S10、获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;
S20、对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。
2.根据权利要求1所述的Android系统的数据保护方法,其特征在于,在所述步骤S20之后,还包括:
S30、当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;
S40、对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,返回步骤S10。
3.根据权利要求1所述的Android系统的数据保护方法,其特征在于,所述步骤S10具体包括:
S11、扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;
S12、根据所述数据库文件获取对应的系统表;
S13、根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
4.根据权利要求1所述的Android系统的数据保护方法,其特征在于,所述步骤S20具体包括:
S21、根据所述B+tree叶子页键值对列表序列的大小得到数字水印;
S22、根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
5.根据权利要求4所述的Android系统的数据保护方法,其特征在于,所述步骤S21具体包括:
将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印。
6.一种Android系统的数据保护系统,其特征在于,包括:
序列获取模块,用于获取Android系统中的数据库文件,根据所述数据库文件获取对应的B+tree叶子页键值对列表序列;
水印嵌入模块,用于对所述B+tree叶子页键值对列表序列嵌入数字水印,并重新排序生成对应的新序列,以保护所述Android系统中的数据。
7.根据权利要求6所述的Android系统的数据保护系统,其特征在于,还包括:
序列恢复模块,用于当所述Android系统中的数据库文件有变化时,根据所述数字水印和嵌入数字水印的新序列获取对应的原B+tree叶子页键值对列表序列,得到原数据库文件;
更新模块,用于对原数据库文件进行操作,当操作完毕,得到变化后的数据库文件,重新获取数据库文件变化后对应的B+tree叶子页键值对列表序列,并嵌入数字水印重新排序生成对应的新序列。
8.根据权利要求6所述的Android系统的数据保护系统,其特征在于,所述序列获取模块包括:
数据库扫描单元,用于扫描Android系统中文件后缀为数据库后缀的文件,得到Android系统中的数据库文件;
系统表获取单元,用于根据所述数据库文件获取对应的系统表;
序列获取单元,用于根据所述系统表获取B+tree叶子页,得到B+tree叶子页键值对列表序列。
9.根据权利要求6所述的Android系统的数据保护系统,其特征在于,所述水印嵌入模块包括:
水印获取单元,用于根据所述B+tree叶子页键值对列表序列的大小得到数字水印;
水印嵌入单元,用于根据所述数字水印对所述B+tree叶子页键值对列表序列进行循环右移操作,得到嵌入数字水印后的新序列。
10.根据权利要求9所述的Android系统的数据保护系统,其特征在于,所述水印获取单元,用于将所述B+tree叶子页键值对列表序列的大小对应的阶乘数作为数字水印。
CN201510171440.8A 2015-04-13 2015-04-13 一种Android系统的数据保护方法及系统 Active CN106156649B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510171440.8A CN106156649B (zh) 2015-04-13 2015-04-13 一种Android系统的数据保护方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510171440.8A CN106156649B (zh) 2015-04-13 2015-04-13 一种Android系统的数据保护方法及系统

Publications (2)

Publication Number Publication Date
CN106156649A true CN106156649A (zh) 2016-11-23
CN106156649B CN106156649B (zh) 2019-09-10

Family

ID=57335970

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510171440.8A Active CN106156649B (zh) 2015-04-13 2015-04-13 一种Android系统的数据保护方法及系统

Country Status (1)

Country Link
CN (1) CN106156649B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016061A (zh) * 2019-12-16 2020-12-01 江苏水印科技有限公司 一种基于鲁棒水印技术的Excel文档数据保护方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737794A (zh) * 2005-06-15 2006-02-22 武汉大学 一种用数字水印技术保护数据库数据版权的方法及其应用

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1737794A (zh) * 2005-06-15 2006-02-22 武汉大学 一种用数字水印技术保护数据库数据版权的方法及其应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王正飞 等: "基于B+树的索引字段加密", 《中南大学学报》 *
裴选: "基于B树的数据库防篡改及其恢复机制的研究", 《中国优秀硕士论文库》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016061A (zh) * 2019-12-16 2020-12-01 江苏水印科技有限公司 一种基于鲁棒水印技术的Excel文档数据保护方法

Also Published As

Publication number Publication date
CN106156649B (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
US9720943B2 (en) Columnar table data protection
JP5506290B2 (ja) 検索可能なブロックを用いた連想記憶システムおよびその方法
Mullan et al. Forensic source identification using JPEG image headers: The case of smartphones
CN101685468B (zh) 采用可搜索块的内容可寻址存储系统和方法
US10402386B2 (en) Method and apparatus for generating index for encrypted field in database
US7979410B2 (en) Maintaining referential integrity while masking
CN107729371B (zh) 区块链的数据索引及查询方法、装置、设备及存储介质
JP2010157204A5 (zh)
CN112256721B (zh) Sql语句解析方法、系统、计算机设备和存储介质
JP2008517354A (ja) データベーステーブル探索用の暗号化されたデータベースインデックスを構築する方法を導入されたコンピュータ
JP2014191670A5 (zh)
US20180144061A1 (en) Edge store designs for graph databases
US7373342B2 (en) Including annotation data with disparate relational data
CN102725755A (zh) 文件访问方法及系统
CN104090922B (zh) 一种清理隐私数据的方法和装置
JP2005057701A5 (zh)
Kamel et al. A robust software watermarking for copyright protection
CN103077208A (zh) 统一资源定位符匹配处理方法及装置
CN105447342A (zh) 脚本加密方法、解密方法及引擎
CN111581217B (zh) 数据检测方法、装置、计算机设备和存储介质
CN107153692B (zh) 一种字符串匹配的方法及设备
CN106156649A (zh) 一种Android系统的数据保护方法及系统
CN104239376A (zh) 数据存储方法和装置
KR100698834B1 (ko) 인덱스 컬럼 암호화 방법
CN108376054B (zh) 一种对标识数据进行索引的处理方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant