【问题标题】:cant decrypt sqlite after SQLCipherSQLCipher后无法解密sqlite
【发布时间】:2015-07-01 11:20:32
【问题描述】:

我正在使用 Mac 上的 SQLCipher 加密/解密文件。

这就是我加密数据库的方法:

sqlite> ./sqlcipher test.db
sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'Sef*DFyds98fhsh2';
sqlite> SELECT sqlcipher_export('encrypted');
sqlite> DETACH DATABASE encrypted;

然后我尝试打开加密数据库:

sqlite> ./sqlcipher encrypted.db
sqlite> PRAGMA key = 'Sef*DFyds98fhsh2';
sqlite> select * from tables;

它给了我这个错误:

Error: file is encrypted or is not a database

一件事是我的原始数据库文件是 1.6 兆字节,但加密后 变成 226 KlioByte。

【问题讨论】:

  • 能否对 encrypted.db 文件进行 hexdump 并确保它实际上是加密的?

标签: sqlite encryption sqlcipher


【解决方案1】:

如果你输入

sqlcipher --version

你得到了什么?

如果它是像 2.x 这样的旧版本,那就是个问题。 Building from source 为我解决了这个问题。现在应该在 3.8.x.x 左右。

也只是好奇,你有一张叫做“tables”的桌子吗? sqlcipher 有一个内置的方法来执行这个

.tables

我猜它会说“错误:没有这样的表:表 " 如果是这样的话。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    相关资源
    最近更新 更多