首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以沿QSqlDatabase使用SQLCipher?

是否可以沿QSqlDatabase使用SQLCipher?
EN

Stack Overflow用户
提问于 2014-03-15 11:38:41
回答 1查看 978关注 0票数 2

我想在Qt中使用加密的SQLite数据库。是否可以通过QSqlDatabase连接到数据库,并使用SQLCipher加密或解密数据库?例如,我经常连接到SQLite数据库文件,如下所示:

代码语言:javascript
复制
QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE","Main_Connection" );
db.setDatabaseName( "Main.sqlite" );
db.open();

我想知道是否可以使用SQLCipher API解密数据库,并使用Qt数据库模块连接和操作数据库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-17 06:46:21

由于API是相同的,所以您应该能够使用SQLCipher构建Qt的SQLITE驱动程序,而无需修改。唯一要注意的是,

  1. 库和头文件名是相同的,并且是可用的,并且
  2. 在访问任何数据之前,使用SQLCipher的PRAGMA指令手动初始化密码参数

http://sqlcipher.net/sqlcipher-api/

如果您在Linux上,不能(或不想)修改系统,那么在sqlite的情况下修改配置脚本,这样它就可以找到sqlcipher,并与正确的libsqlcipher库链接。例如,这个更改允许我使用SQLCipher构建SQLCipher插件,

代码语言:javascript
复制
--- a/configure
+++ b/configure
@@ -4736,12 +4736,12 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
             if [ "$CFG_SQL_sqlite" != "no" ]; then
                 SQLITE_AUTODETECT_FAILED="no"
                 if [ "$CFG_SQLITE" = "system" ]; then
-                    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists sqlite3 2>/dev/null; then
+                    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists sqlite3override 2>/dev/null; then
                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
                     else
-                        QT_CFLAGS_SQLITE=
-                        QT_LFLAGS_SQLITE="-lsqlite3 -lz"
+                        QT_CFLAGS_SQLITE="-I/usr/include/sqlcipher"
+                        QT_LFLAGS_SQLITE="-lsqlcipher -lz"
                     fi
                     if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
                         if [ "$CFG_SQL_sqlite" = "auto" ]; then

然后您需要使用-system-sqlite进行配置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22423280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档