Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQLite3数据库加密--确定加密库?_Php_Encryption_Sqlite_Sqlcipher - Fatal编程技术网

Php SQLite3数据库加密--确定加密库?

Php SQLite3数据库加密--确定加密库?,php,encryption,sqlite,sqlcipher,Php,Encryption,Sqlite,Sqlcipher,我正在考虑为PHP应用程序支持加密的sqlite数据库。我使用的是PHP的SQLite3扩展,它们似乎已经支持加密方法,至少SQLite3::u构造允许传递加密密钥 我不知道的是,他们在文档中谈论的是哪个加密库。通过谷歌搜索,我发现了以下几点: sqlcipher sqlite见 sqlite隐窝 我不清楚的是: 这些库如何与SQLite3集成 如果它们在指定加密密钥和设置数据访问等方面共享兼容性 如果我能在我的应用程序中自动检测我的SQLite3安装是否支持任何加密库以及支持哪个加密库,

我正在考虑为PHP应用程序支持加密的sqlite数据库。我使用的是PHP的SQLite3扩展,它们似乎已经支持加密方法,至少SQLite3::u构造允许传递加密密钥

我不知道的是,他们在文档中谈论的是哪个加密库。通过谷歌搜索,我发现了以下几点:

  • sqlcipher
  • sqlite见
  • sqlite隐窝
我不清楚的是:

  • 这些库如何与SQLite3集成
  • 如果它们在指定加密密钥和设置数据访问等方面共享兼容性
  • 如果我能在我的应用程序中自动检测我的SQLite3安装是否支持任何加密库以及支持哪个加密库,那么我的应用程序就可以支持不同的加密库

非常感谢您的帮助

据我所知,只有在使用支持加密编译的SQLite版本(即,加密在默认版本中不起作用)时,传递给PHP open的密码才有效

我们已经有一些用户通过使用SQLCipher代码库构建PHP软件,成功地将SQLCipher与PHP结合使用。更多信息可在以下线程中获得:


SQLite3库需要在构建时支持加密。这些项目(还有一些:)可以用来获取支持加密的sqlite3.so/dll

所以,问题是

  • 它们不与sqlite集成。他们提供了一个支持加密的替代sqlite3库
  • 香草SQLite3提供了加密所需的API,但尚未实现。我相信SQLiteCrypt使用自己的API,所以在这里不起作用(不要引用我的话)
  • 您的SQLite3安装不支持它,您需要将其替换为使用此功能编译的SQLite3库(请参阅我链接的选项)

  • 注意:我没有使用PHP+SQlite3加密。

    一篇似乎对SQLite加密有用的帖子由管理员发布,解释如何使用sqlcipher

    请参见我的答案:

    SQLite3具有用于加密的内置接口。您需要在config.m4中启用它:-DSQLITE\u HAS\u CODEC=1
    我已经基于AES开发了自己的加密。在/ext/sqlite3/libsqlite中有几个C文件,效果很好。整个数据库文件是加密的,不需要从PHP发送加密数据。一旦我的代码准备好发布,我将更新这篇文章。干杯

    我们现在有了更多关于在PHP中使用SQLCipher的官方文档