1. 下载加密插件QtCipherSqlitePlugin
- 加密方式:对数据库文件加密。既不会暴露表结构,也不会暴露数据细节。
- 用于密码 SQLite 的 Qt 插件,它基于 SQLite 源和 wxWidget 中的 wxSQLite3。
- 插件github地址:https://github.com/devbean/QtCipherSqlitePlugin
2.编译成插件库
- 编译出dll文件:使用qtcreator打开pro文件,在选择项目的编译器,在debug模式下编译。
- 将插件加入到qt:找到
sqlitecipher/plugins/sqldrivers/sqlitecipher.dll
文件,将其加入到qt目录下qt\5.15.2\mingw81_64\plugins\sqldrivers
。(自己选择对应版本) - 检测插件是否加载成功:运行代码
qDebug() << QSqlDatabase::drivers()
,出现"SQLITECIPHER"
代表插件加入成功。
3.使用插件
- 加密数据库
QSqlDatabase dbconn = QSqlDatabase::addDatabase("SQLITECIPHER");
dbconn.setDatabaseName("test.db");
dbconn.setPassword("test");
//将原本没有加密的数据库文件进行加密,此代码只需执行一次
dbconn.setConnectOptions("QSQLITE_CREATE_KEY");
dbconn.open()
- 删除数据库密码
//其他代码不变,只需要修改这一句就可以了
dbconn.setConnectOptions("QSQLITE_REMOVE_KEY");
- 修改数据库密码
//其他代码不变,只需要修改这一句在后面加上新的密码即可
dbconn.setConnectOptions("QSQLITE_UPDATE_KEY=newtest");
//等同于删除密码
dbconn.setConnectOptions("QSQLITE_UPDATE_KEY=");
- 运行时设置加密算法
/*
QSQLITE_USE_CIPHER的可选值分别为:
aes128cbc AES 128 Bit CBC – No HMAC (wxSQLite3)
aes256cbc AES 256 Bit CBC – No HMAC (wxSQLite3)
chacha20 ChaCha20 – Poly1305 – Poly1305 HMAC (sqleet)
sqlcipher AES 256 Bit CBC – SHA1 HMAC (SQLCipher)
*/
dbconn.setConnectOptions("QSQLITE_USE_CIPHER=sqlcipher");
原文链接: https://www.cnblogs.com/09w09/p/16540716.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/190604
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!