php - 当我尝试使用错误的加密密钥打开文件时,为什么 SQLite 没有给我一个错误?
问题描述
我无法在线找到有关此行为的任何信息,因此我们将不胜感激。
使用以下代码时:
//create file with encryption key "test1"
$tempDB = new \SQLite3("temp.db", SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE, "test1");
//attempt to open the same file using key "test2"
$tempDB = new \SQLite3("temp.db", SQLITE3_OPEN_READWRITE, "test2");
var_dump($tempDB->lastErrorCode()); //int(0) : no error?
这是预期的行为吗?如果是这样,我如何检查给定 SQLite3 文件的密钥是否正确?
解决方案
是的,我是个白痴。浏览完手册后,我认为加密是 PHP+SQLite 附带的一个模块,或者您可以轻松安装和使用它。
事实并非如此。您必须支付 2000 美元才能使用此模块。啊。
我的代码只是忽略了这个参数:
加密和解密 SQLite 数据库时使用的可选加密密钥。如果没有安装 SQLite 加密模块,该参数将不起作用。
推荐阅读
- c# - 如何获取已安装的输入语言列表(键盘布局)?
- ios - UITableViewCell 从 1 计数到 50
- reactjs - React Navigation V2:navigation.push 和 navigation.navigate 的区别
- node.js - Node js事件循环:安全的for循环和Python的区别
- html - 下拉菜单卡在 div 后面
- android - 手动创建的风味资源未正确构建
- python - 如果python中的字段为空白,如何防止变量更改为“无”
- selenium - 在为 Selenium Web 自动化创建 XPath 表达式时,最有用的轴方法是什么?
- java - 如何从默认 jar 中排除类但将其保留在 jar-with-dependencies 中?
- mongodb - mongodb shell $inc 将 int 转换为 double