使用sqlcipher对sqlite数据库加密解密

文章目录

一、sqlite数据库加密

目前只对新建的数据库进行。 暂不知道对已有数据库的加密。

1.环境配置

1.1 在Android Studio build.gradle 中引入相关的jar包

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

1.2 替换数据库访问方式和原生的sqlite包
import android.database.sqlite.SQLiteDatabase; (原数据库操作jar包)
替换成
import net.sqlcipher.database.SQLiteDatabase; (sqlcipher jar包)

二、更换数据库访问方式

1.获取DB 数据操作对象

 SQLiteDatabase db = indexSQLiteHelper.getWritableDatabase(DB_PWD);

2.修改构造方法

继承 SQLiteOpenHelper 的类的构造方法修改为下面这个

 public IndexSQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);

        SQLiteDatabase.loadLibs(context);
 }

到了这已经加密成功。

三、加密数据库解密

1.sqlcipher解密相关文件

百度网盘下载
提取码: 9vz2

使用sqlcipher对sqlite数据库加密解密

; 1.解密

//定位到bin目录

D:\> cd \sqlcipher\bin

//使用sqlcipher-shell64.exe 打开加密数据库

D:\sqlcipher\bin> ./sqlcipher-shell64.exe afinal.db;

// 输入数据库密码

sqlite> PRAGMA key = 'xinyu';

// 将加密数据库的数据备份到新数据库

sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY '';
sqlite> SELECT sqlcipher_export('plaintext');

//关闭数据库

sqlite> DETACH DATABASE plaintext;

Original: https://blog.csdn.net/qq_42792934/article/details/117528934
Author: qq_42792934
Title: 使用sqlcipher对sqlite数据库加密解密

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816774/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球