【问题标题】:How to use wxsqlite3 secure in linux?如何在 linux 中使用 wxsqlite3 安全?
【发布时间】:2018-10-04 04:48:44
【问题描述】:

我使用wxsqlite3(版本 3.11.1)在 Windows 操作系统上加密 SQLite 数据库。我只是将sqlite3.hsqlite3.lib 包含在我的项目中,并使用sqlite3_key 来加密我的数据库。它工作正常,但现在我想在 Linux(Centos 7)上使用wxsqlite3

我花了很多天试图编译但失败了。如何在 Linux 上使用与 Windows 相同的方法?任何有经验的人都可以分享他们关于如何编译 SQLite 和wxSqlite3 以便能够访问加密函数的知识和实践。

【问题讨论】:

    标签: linux sqlite security wxwidgets


    【解决方案1】:
    1. 从未存在过 wxSQLite3 的 3.11.1 版本。但是,2016 年 3 月发布了 SQLite 3.11.1。SQLite 的当前版本是 3.23.1 版。
    2. wxSQLite3 主要是 SQLite 库的瘦包装器,用于基于 wxWidgets 的应用程序。您正在开发 wxWidgets 应用程序吗?或者您是否只是在使用 wxSQLite3 中包含的带有加密扩展的 SQLite 库?
    3. 从 wxSQLite3 版本 3.5.0 开始,包含的构建系统进行了大修,使得在 Windows 和 Linux 下构建 wxSQLite3 变得更加容易。直到 wxSQLite3 3.5.9 版本,预生成的构建文件仅包含在 wxWidgets 包装库中,但包含用于生成构建文件的 premake5 脚本。由于 wxSQLite3 4.0.0 版预生成的构建文件也包含在带有加密扩展名的 SQLite 库中。

    因此,我的建议是下载最新版本的 wxSQLite3 并尝试包含用于 Linux(和其他类似 Linux 的系统)的构建文件。

    【讨论】:

    • 谢谢。(1) 这是我的错误。我在 windows 系统中使用了 wxsqlite3(3.3.1)。 (2) 我只想使用包含在 wxSQLite3 中的带有加密扩展的 SQLite 库(wxWidgets 应用程序没有)。 (3) 我下载 wxsqlite3(4) 并在路径“sqlite3secure”中找到 makefile.am ,我只是 ./configure,make 和 make install,它是成功的。并生成一个名为“sqlite3shell”的文件,有两个问题:一个是当我使用 sqlite3shell 创建表 test.db 和 pragma rekey='password' 时,但是当我尝试使用 sqlite3shell(version wxsqlite3.3.1) 打开测试时。 db 和 pragma key='password' ,它失败了
    • 它似乎与旧版本不兼容。另一个问题是在linux系统中如何与我的widnows代码兼容。我的windows代码是这样的:ret = sqlite3_open(dbname, &db); ret = sqlite3_key(db,"mypassword",10); sqlite3_close(db);分贝 = 0;
    • E:\>sqlite3shell test.db SQLite 版本 3.12.1 2016-04-08 15:09:49 输入“.help”获取使用提示。 sqlite> pragma key='123'; sqlite> 从一个中选择 *; 1|2 sqlite> .q =test.db 相同 ========================== E:\bin>sqlite3shell test.db SQLite 版本 3.23 .1 2018-04-10 17:39:29 输入“.help”获取使用提示。 sqlite> pragma key='123'; sqlite> 从一个中选择 *;错误:不支持的文件格式 sqlite>
    • 直到 wxSQLite3 版本 3.5.9,默认加密方案是“AES 128 Bit CBC”。对于 wxSQLite3 版本 4.0.0 及更高版本,默认加密方案现在是“ChaCha20 - Poly1305”。如果出于兼容性原因要启用旧的加密方案,则必须使用附加参数调用配置,即“--enable-codec=aes128”。
    • 感谢您的友好回答。这是我的步骤:(在linux centos7中)(1)tar -xzvf wxsqlite3-4.0.3.tar.gz(2)cd /wxsqlite3-4.0.3/sqlite3secure(3)./configure --enable-codec=aes128 (4) 制作 (5) 制作安装。成功。 sqlite3shell 可以打开 test.db。现在我尝试用 c++ 编程来打开数据库和加密。使用 IDE vs2017 。 main.cpp 像这样:#include #include int main(){
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2011-05-09
    相关资源
    最近更新 更多