Android原生数据库没有加密功能,以至APP数据库处于裸奔状态。处于安全需求的情况下,诞生出了给数据库整体文件封装加密的工具,用法与原生数据库一模一样,只是引用的包名不一样
原生:android.database.sqlite.SQLiteDatabase;
可以加密:net.sqlcipher.database.SQLiteDatabase;
大的前提条件介绍完毕,至于sqlcipher如何使用,这里不多说,现在重点介绍如何解密sqlcipher数据库加密后的文件
1、先下载sqlcipher工具:https://download.csdn.net/download/caijinghuacaijinghua/10465504
打开工具文件夹后通过cmd命令进入到bin文件夹内
2、把已加密的数据库(POPMain.db)放到bin文件夹内
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; (断开连接)
4、此时bin文件内已经多了一个未加密的新数据库,可以直接放到SQLite 工具内查看