sqlcipher 命令行不起作用

Min*_*Lin 4 database sqlite sqlcipher

我有一个加密的 sqlite db 及其密钥。(由 android 程序生成)。但是,当我在命令行中打开数据库时,我无法读取数据库。命令行工具通过以下方式安装:

brew install sqlcipher
Run Code Online (Sandbox Code Playgroud)

我通过以下方式打开数据库:

sqlcipher EnDB.db
>pragma key="6b74fcd";
>select * from bizinfo;
Run Code Online (Sandbox Code Playgroud)

它一直告诉我“错误:文件已加密或不是数据库”

但是,如果我使用 gui app sqlite 数据库浏览器(这是一个 Windows 程序,我在 wine 中运行它)打开数据库文件。它弹出一个窗口让我输入密钥,以6b74fcd作为成功读取数据库的密钥。

sqlite 数据库浏览器

由于我想在将来自动处理数据库,所以我不能依赖 GUI。你知道为什么命令行不起作用吗?

Min*_*Lin 5

已经解决了!

pragma key="6b74fcd";
Run Code Online (Sandbox Code Playgroud)

调用这个:

pragma cipher_use_hmac=off;
Run Code Online (Sandbox Code Playgroud)

然后一切都像魅力一样。看来数据库是1.x 数据库。