首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在SQLCipher失败时解密sqlcipher_export数据库

如何在SQLCipher失败时解密sqlcipher_export数据库
EN

Stack Overflow用户
提问于 2015-04-15 17:13:33
回答 2查看 4.2K关注 0票数 0

我正在尝试解密SQLCipher数据库,以便使用查看器应用程序查看它,当我使用命令行工具执行在这里所说的操作时,请购买

代码语言:javascript
复制
>sqlcipher encrypted.db
sqlite> pragma key = 'key';
sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY '';
sqlite> SELECT sqlcipher_export('plaintext');

我知道错误:

代码语言:javascript
复制
Error: no such collation sequence: COLLATION_NAME

而plaintext.db只有一个空表。

还有其他方法来解密数据库吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-15 17:13:33

那么,SQLite有这里概述的方便的备份功能:https://www.sqlite.org/backup.html

您可以在命令行工具中使用.backup特殊命令(参见这里的帮助:https://www.sqlite.org/cli.html)。它在sqlcipher命令行工具中工作,并因此生成未加密的数据库。

以下是如何解密数据库:

代码语言:javascript
复制
>sqlcipher encrypted.db
sqlite> pragma key = 'key';
sqlite> .backup plaintext.db

当然,您也可以通过加载数据库和使用在第一个链接中找到的备份API(滚动到“示例2:运行中的数据库的联机备份”部分)来编程完成,但是我没有探究这个选项。

票数 0
EN

Stack Overflow用户

发布于 2015-04-17 13:09:29

你的数据库是在Android平台上生成的吗?如果是这样的话,它可能正在使用来自ICU的校对信息,它被链接到安卓系统的SQLCipher中。用于使用说明命令行工具的基本构建SQLCipher不包括包含SQLCipher的步骤。您可能会发现更容易在安卓设备上执行sqlcipher_export(…),以利用ICU的存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29656587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档