Android换用可加密安全性更好的SQLite数据库

2019-06-17  本文已影响0人  kongzue

SQLCipher 相比于原生 SQLite,可选择 db 加密,安全性更高,易用性基本和原生 SQLite 相当,是原生 SQLite 不错的替代品。

SQLCipher使用 256-bit AES 加密,由于其基于免费版的 SQLite,主要的加密接口和 SQLite 是相同的,也增加了一些自己的接口,唯一缺点就是使用该库之后会导致 APK 会变大6M左右。

引入

首先前往 Github:
https://github.com/sqlcipher/android-database-sqlcipher

进入其 Maven 仓库可以查看到最新的版本:
https://search.maven.org/artifact/net.zetetic/android-database-sqlcipher/4.2.0/jar

implementation 'net.zetetic:android-database-sqlcipher:4.2.0'

引入包后,其使用方式与原生 SQLite 基本一致,先构建 SqlliteHelper,然后获取 SQLiteDatabase,最后进行一系列的操作即可。

第一次使用

先注意初始化,在 Application 里初始化执行:

SQLiteDatabase.loadLibs(this);

之后是获取数据库,可以传入密钥作为参数,对数据库加密:

String key = "你的密钥";
sqlliteHelper.getWritableDatabase(key);

之后所有操作和普通原生 SQLite 基本一致,需要请百度,这里不再赘述。

已有用原生 SQLite

首先还是要注意初始化,这大概是和原生 SQLite 的唯一区别,在 Application 里初始化执行:

SQLiteDatabase.loadLibs(this);

之后将项目中的:

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

全部替换为:

import net.sqlcipher.Cursor;
import net.sqlcipher.database.SQLiteDatabase;
import net.sqlcipher.database.SQLiteOpenHelper;

之后是获取数据库,可以传入密钥作为参数,对数据库加密:

String key = "你的密钥";
sqlliteHelper.getWritableDatabase(key);

参考资料

https://blog.csdn.net/qq_19711823/article/details/50974467

上一篇下一篇

猜你喜欢

热点阅读