sqlite sqlcipher命令行不工作

zzwlnbp8  于 12个月前  发布在  SQLite
关注(0)|答案(2)|浏览(129)

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

brew install sqlcipher

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

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

它一直告诉我“错误:文件已加密或不是数据库”
但是,如果我用gui app sqlite数据库浏览器打开数据库文件(这是一个windows程序,我在wine中运行)。它弹出一个窗口让我输入密钥,以6b74fcd为密钥它成功读取了数据库。

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

ny6fqffe

ny6fqffe1#

已经解决了!

pragma key="6b74fcd";

称之为:

pragma cipher_use_hmac=off;

一切都像一个魅力。数据库是1.x数据库。

qij5mzcb

qij5mzcb2#

由于我不得不经历一些麻烦与类似的问题,这里是什么帮助我的情况。
通过在终端中打开数据库后,

sqlcipher mydatabase.db

我确保了兼容性

PRAGMA cipher_default_compatibility = 1;

然后我提供了钥匙

PRAGMA key='theKey';

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

SELECT * FROM myTable;

显然,要确保像“mydatabase.db”、“theKey”和“myTable”这样的东西被替换为您个人的数据库名称、键和表名称。

相关问题