代码实现:
qsqldatabasem _ db=qsql数据库:3360 add数据库(SQLite cipher ); //对应的驱动程序q debug (qsql database :3360驱动程序); qstring db _ file _ path=qdir :3360 current path (() )、/' m_strDbPath; //qDebug () dbfilepathis: ) db_file_path; m _ db=qsql database : add database (SQLite cipher ); //添加数据库驱动程序m _ db.set databasename (db _ file _ path ) m_db.setpassword(ABCD ); //密码m _ db.setconnectoptions (q SQLite _ use _ cipher=chacha 20; QSQLITE_ENABLE_REGEXP '; //用于访问加密的数据库//m _ db.setconnectoptions (' q SQLite _ create _ key ' ); 设置//连接方法(加密(//m_db.setconnectoptions ) (qSQLite_remove_key ) )//设置//连接方法(解密)注意:
如果数据未加密,请不要使用设置密码的语句和解密语句。 数据库将无法打开。数据只能加密一次,下次通过chacha20访问,解密也只能进行一次。 如果需要重新加密,首先确定是否需要解密。 enum KEY_OP {
OPEN_WITH_KEY=0,
CREATE_KEY,
UPDATE_KEY,
REMOVE_KEY
(;
如果数据库已加密,则在操作之前必须运行此函数并输入正确的密钥。 如果数据库未加密,则在运行此函数后执行数据库操作将导致错误“此数据库已加密或不是数据库文件”。 根据测试结果,只能在创建新数据库时设置密码。
要更改密码,请打开它,然后使用旧密码sqlite3_key,最后使用新密码sqlite3_rekey
接下来,我们将讨论如何在QT中配置。
下载并编译加密插件后:
在编译的调试和发行目录下
复制到与Qt对应的同一目录:
不存在可以创建的内容时;
在驱动器位置找到编译的文件夹。
将以下文件复制到适当的位置:
分别是对应的调试和版本的内容。