Android加密已有的sqlite数据库---sqlcipher

这篇博客主要介绍如何对已存在的Android sqlite数据库进行加密,使用开源库sqlcipher实现。通常教程是创建新数据库,但针对已存在数据库的加密教程较少。文中详细介绍了加密流程,包括在Android Studio的build.gradle中引入sqlcipher依赖,以及在MainActivity中编写加密和解密数据库的函数。需要注意的是,读写加密数据库不能在外部SD卡中,并且需要使用绝对路径。
摘要由CSDN通过智能技术生成

 android中数据库的加密,通过百度都可以看到,大多都使用的是sqlcipher,好处之一是因为:1.它是开源的,免费的。2.它的运用非常简单,方便,跟sqlite的操作一样,只不过是换成了sqlcipher的包而已。

好的,废话不多说,网上的文章加密数据库,基本上都是新建一个数据库,而对已有的数据库进行加密,却少之又少。我找了好半天,也才找到下面两篇,大家可以作为参考。

文章1

文章2

这里说一下思路:加密已有的sqlite数据库,其实是对原有的数据库进行了一份拷贝。只是拷贝后的数据库有了加密功能。拷贝的话就是拷贝原有数据库的表或者数据。这里我选择拷贝表。

使用流程如下(这里以AS开发工具为例):

1.新建android工程,在app的build.gradle中加入如下代码编译代码:

dependencies {
   compile 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
}

我这里的sqlcipher版本是3.5.7,具体最新版可以查看 官网


2.等待编译成功后,便可在MainActivity中添加加密函数,这里注意,读取原始数据库和生成新的加密数据库不能在外部SD卡中,具体原因我还不知,我也在mainfest.xml中配置了外部读写权限和代码中书写了运行时权限,也不行。有测试可行或者知道的读者请告诉我哈。下面给出加密和读取加密数据库的函数。还有在读取数据库时路径要取绝对路径,如果是自己定义的路径,会报错(我这里ce's)。

1.MainActivity.java


                
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值