sqlcipher 命令行不起作用

问题描述 投票:0回答:2

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

brew install sqlcipher

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

sqlcipher EnDB.db
>pragma key="6b74fcd";
>select * from bizinfo;

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

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

sqlite database browser

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

database sqlite sqlcipher
2个回答
6
投票

已经解决了!

之后

pragma key="6b74fcd";

称之为:

pragma cipher_use_hmac=off;

然后一切都会变得很顺利。 看来数据库是1.x数据库。


0
投票

由于我不得不经历类似问题的一些麻烦,这对我的案例有帮助。

在终端中通过

打开数据库后
sqlcipher mydatabase.db

我确保了兼容性

PRAGMA cipher_default_compatibility = 1;

然后我提供了钥匙

PRAGMA key='theKey';

现在,我可以使用如下 SQL 语句

SELECT * FROM myTable;

显然,请确保将“mydatabase.db”、“theKey”和“myTable”等内容替换为您个人的数据库名称、键和表名称。

© www.soinside.com 2019 - 2024. All rights reserved.