数据库sqlite怎么加密

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】免费获取数百本计算机经典书籍

    数据库sqlite怎么加密

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

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

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

(0)
上一篇 2023年2月12日 下午4:17
下一篇 2023年2月12日 下午4:18

相关推荐