1. 加密方式
- 对数据库文件加密。既不会暴露表结构,也不会暴露数据细节。
2. 加密工具(QtCipherSqlitePlugin)
- 用于密码 SQLite 的 Qt 插件,它基于 SQLite 源和 wxWidget 中的 wxSQLite3
- 插件github地址:https://github.com/devbean/QtCipherSqlitePlugin
3. 编译插件
- 编译DLL文件:
- 使用qtcreator打开pro文件,选择项目的编译器,在debug模式下编译。
- 将插件放入QT安装目录
- 找到
sqlitecipher/plugins/sqldrivers/sqlitecipher.dll
文件,将其加入到qt目录下qt\5.15.2\mingw81_64\plugins\sqldrivers
- 找到
- 检查插件是否加载成功
- 运行代码
qDebug() << QSqlDatabase::drivers()
,出现"SQLITECIPHER"
代表插件加入成功
- 运行代码
4. 使用插件
c
//加密前代码
QSqlDatabase m_db = QSqlDatabase::addDatabase("QSQLITE", "Users");
m_db.setDatabaseName("Users.db");
m_db.open()
//加密后代码
m_db = QSqlDatabase::addDatabase("SQLITECIPHER", "Users"); //需要行
m_db.setDatabaseName("Users.db");
m_db.setPassword("testkey");; //添加密码
m_db.open()
5. 数据库查看
SQLiteStudio添加数据库文件。