预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于安卓终端的SQLite数据库网盘存储安全研究HYPERLINK"https://m.zqwdw.com/shenghuoxiuxian/2020/1031/902227.html"张晶[摘要]随着移动客户端的普及,我国移动用户不断增加。基于此,文章对安卓终端的SQLite数据库进行简单介绍,以网盘存储的安全研究为主,分别从身份认证、访问控制模块、网盘的设计与实现和SQLite数据库加密等方面,进一步提升SQLite数据库的网盘存储安全性。[关键词]安卓终端;SQLite数据库;网盘储存;安全doi:10.3969/j.issn.1673-0194.2020.15.082[中图分类号]TP311[文献标识码]A[文章编号]1673-0194(2020)15-0197-021基于安卓终端的SQLite数据库介绍SQLite是一款通过C语言编写的开放嵌入式数据库,符合ACID中的关系型数据库管理系统。SQLite数据库具有所占内容小、运行效率高的特点,是现在安卓终端设备常用的数据库,其由公共接口、虚拟机、后端与编译器系统等部分组成。其中公共接口主要是通过SQLiteCAPI组成,其中很多脚本语言或者程序,都是利用SQLite与接口交互;而编译器系统则由分析器、代码生成器与分组器组成,其中分组器与分析器先检测执行的语句,然后将其转变为方便基层处理的数据结构,接着将这种数据结构传递给代码生成器进行后续处理,并产生虚拟机,继续执行汇编代码;虚拟机也叫虚拟数据库引擎,此是SQLite数据库的关键内容,负责解释执行字节;后端的主要作用是管理数据,并借助OSInterface分享页面信息[1]。2基于安卓终端的SQLite数据库网盘存储安全的实现2.1身份认证增强SQLite数据库网盘储存的安全性,最先从身份认证方案的实现入手,具体包括身份认证与密钥形成两部分内容。2.1.1身份认证第一,系统中调出sqlite3_open_v2()的函数,并根据提示分别输入用户名与口令。第二,系统继续调取函数,并分析其中带有的参数,如用户名、口令等。第三,用户在函数下,通过查找用户名的形式,观看其是否在用户信息体系中的属性列表中。如果存在,继续下一步。如果不存在,系统直接退出页面,结束访问。第四,结合密钥生成的过程,用户在输入口令的时候,还需关注运算后产生的数值。第五,对于查询系统,用户有密钥文件中的密钥K。第六,系统调用checkPassword()函数中判断K0和K的关系,若两者相等,则证明身份认证成功,成功进入数据库,若两者不相等,直接退出访问。2.1.2密钥生成规则函数数据库进入过程中的身份验证,需要比较两个数值,如K0和K,K0表示用户登录数据库中输入的口令,经过密钥生成规则的数值;K则是用户最早注册,设置口令时产生的密钥值,图1为密钥生成规律函数下的算法代码[2]。其中,用户输入口令之后,通过密钥生成规律,进行密钥计算,系统通过函数提示录入手机IMEI码,接着将其与站用户输入口令拼接,再加入Sale值,进行MD5散列,最终得到上百位不可逆推的密钥。2.2访问控制模块用户在终端登录SQLite数据库的时候,系统经过对其进行身份验证后,就会对用户角色进行划分,可以是一种,也可是多种,并在多种角色下,尽量增强角色权限。例如方位控制阶段,系统会读取用户的权限与角色类别,判断其是否具有操作权限。用户身份验证成功后,系统调用钩子函数授权回调函数。其中的回调函数有三类返回值,分别为允许操作、拒绝操作与允许操作中摒弃不授权的操作。然后通过调用函数,按照用户的角色,检测是否有进行SQL语句操作权限。验证结果如果是有权限,则允许操作,若没有就终止请求。查找权限表的代码图只需系统对用户进行角色判断,就可知道是否具有执行权限。若权限码type的值为1-5,表示系統执行的是符合用户需求的操作;若权限码type的值为6-10,表示系统执行的是删除的操作;若权限码type的值为11-15,表示系统执行对应SQL语句操作:若用户的角色中没有type,则表示无对应操作权限。2.3网盘的设计与实现SQLite数据库网盘的使用客户,可通过客户端注册登录与检索下载。SQLite数据库服务器对信息的储存是以密文形式,要想解密,需要的密钥在本地安卓终端上,以此防止云服务过程中产生的安全威胁。打开SQLite数据库客户端,输入账号密码后,用户持合法身份进入主界面,并点击其中的多种功能,上传文件空间,系统程序自动打开SQLite接口,进入安全模块,系统验证访问者身份。待权限控制模块认证成功后,SQLite数据库内部的文件就可上传[3]。安卓终端中的本地SQLite安全加强模块中的密文,通过云端或者网盘,上传到服务器终端。文件上传前,就已经有很多数据被加密,以密文的形式存在于服务端,防止