【问题标题】:ZeosDb : Encrypt SQLiteZeosDb:加密 SQLite
【发布时间】:2012-11-13 16:14:54
【问题描述】:

我正在使用 ZeosDB 组件来访问 sqlite 数据库。它在未加密的数据库上运行良好。

在我收到的加密数据库上:文件已加密或不是数据库。即使我设置了密码。

我使用的 DLL 文件有误吗?我使用the official page的最后一个dll,默认不支持加密?

【问题讨论】:

  • 如何加密数据库?您是否使用某些 DB Management Studio 对其进行加密?
  • yes.Navicat.suggestions?

标签: delphi sqlite zeos


【解决方案1】:

最近我遇到了同样的问题(使用 UniDac)。官方 DLL 不支持加密。有几个库包含加密,但它们不可互换。 IE。用一个 SQLite DLL 加密的数据库不能用另一个发行版解密。我认为你的情况是一样的。

我的解决方案是:

  • 下载了...static bunde... package (x86, x64) for .NET - 这支持加密(我认为是windows DPAPI)
  • 重命名 System.Data.SQLite.dll 为 SQLite3.dll -> 这个 DLL 是原生 DLL 并且支持 enc/dec
  • 在我的 DBMS 的文件夹中,我用上面提取的 SQLite DLL 替换了

这样 DBMS 使用新的 DLL 进行加密,您的程序可以使用相同版本的 DLL 对其进行解密。

你也可以看看:

注意事项:

  • 还要确保将 SQLite3.dll 复制到程序目录中。许多其他产品使用 SQLite 并且位于 %PATH% 中,因此无法保证您的可执行文件会加载“正确的”SQLite3.dll。 Interesting solution can be found here;
  • 请查阅许可证,看看您是否可以免费使用 .NET 版本,because of this

【讨论】:

    【解决方案2】:

    SQLite3 上有several encryption schemes

    其中,你有:

    • 来自SQLite3作者的官方非免费加密库,命名为SQLite Encryption Extension (SEE):付费使用dll,修改初始化设置数据库密钥;
    • 开源SQLCipher;
    • WXSQlite3 包装器;
    • 对于 Delphi,我们的开源静态链接版本 included in our mORMot(带有自定义加密) - 静态链接允许您不使用外部 sqlite3.dll,因此它有助于简化您的部署和支持 - 它具有轻松切换的特点使用从 Delphi 5 到 XE3 的相同源代码到 MS SQL、Oracle 或 OleDB/ODBC,并具有great speed
    • 请参阅上面的链接。

    ZeosDB SQLite3 级别不处理它们。

    SQlite3 API 驱动程序(单元 ZPlainSqLiteDriver)不包含密码。所以你将不得不改变它。或者切换到另一个支持加密 API 的包装器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 2011-03-02
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多