我正在尝试解密SQLCipher数据库,以便使用查看器应用程序查看它,当我使用命令行工具执行在这里所说的操作时,请购买
>sqlcipher encrypted.db
sqlite> pragma key = 'key';
sqlite> ATTACH DATABASE 'plaintext.db' AS plaintext KEY '';
sqlite> SELECT sqlcipher_export('plaintext');我知道错误:
Error: no such collation sequence: COLLATION_NAME而plaintext.db只有一个空表。
还有其他方法来解密数据库吗?
发布于 2015-04-15 17:13:33
那么,SQLite有这里概述的方便的备份功能:https://www.sqlite.org/backup.html
您可以在命令行工具中使用.backup特殊命令(参见这里的帮助:https://www.sqlite.org/cli.html)。它在sqlcipher命令行工具中工作,并因此生成未加密的数据库。
以下是如何解密数据库:
>sqlcipher encrypted.db
sqlite> pragma key = 'key';
sqlite> .backup plaintext.db当然,您也可以通过加载数据库和使用在第一个链接中找到的备份API(滚动到“示例2:运行中的数据库的联机备份”部分)来编程完成,但是我没有探究这个选项。
发布于 2015-04-17 13:09:29
你的数据库是在Android平台上生成的吗?如果是这样的话,它可能正在使用来自ICU的校对信息,它被链接到安卓系统的SQLCipher中。用于使用说明命令行工具的基本构建SQLCipher不包括包含SQLCipher的步骤。您可能会发现更容易在安卓设备上执行sqlcipher_export(…),以利用ICU的存在。
https://stackoverflow.com/questions/29656587
复制相似问题