Android SQLcipher 数据库解密

时间:2024-04-06 19:21:17

Android原生数据库没有加密功能,以至APP数据库处于裸奔状态。处于安全需求的情况下,诞生出了给数据库整体文件封装加密的工具,用法与原生数据库一模一样,只是引用的包名不一样

原生:android.database.sqlite.SQLiteDatabase;

可以加密:net.sqlcipher.database.SQLiteDatabase;

大的前提条件介绍完毕,至于sqlcipher如何使用,这里不多说,现在重点介绍如何解密sqlcipher数据库加密后的文件

1、先下载sqlcipher工具:https://download.csdn.net/download/caijinghuacaijinghua/10465504

打开工具文件夹后通过cmd命令进入到bin文件夹内

Android SQLcipher 数据库解密

2、把已加密的数据库(POPMain.db)放到bin文件夹内

Android SQLcipher 数据库解密

3、通过执行如下命令将加密的数据库数据(POPMain.db)复制到未加密的数据库(POPMainNo.db)

sqlcipher-shell64.exe POPMain.db  (加密的数据库)

PRAGMA key = '123456';  (数据库密码)
ATTACH DATABASE 'POPMainNo.db' AS POPMainNo KEY '';
(新建一个没有密码的数据库)
SELECT sqlcipher_export('POPMainNo'); 
(把加密数据库数据导入到新建数据库,此时可看到文件正在不断变大)

DETACH DATABASE POPMainNo;  (断开连接)

Android SQLcipher 数据库解密

4、此时bin文件内已经多了一个未加密的新数据库,可以直接放到SQLite 工具内查看

Android SQLcipher 数据库解密