SQLCipher v3.2.0 无法打开使用 SQLCipher v2.1.1 创建的数据库


我已经使用 SQLCipher

GIT 存储库、mingw32 和本操作方法编译了 SQLCipher v3.2.0。我确实成功地获得了一个可以创建加密和未加密数据库的工作sqlite3.dll。

但是当我尝试打开使用 SQLCipher v2.1.1 创建的加密数据库时,它无法打开数据库。我还尝试使用 SQLCipher v2.1.1 打开使用 SQLCipher v3.2.0 创建的数据库,但它也失败了。

我想问题在于SQLCipher v3.2.0使用的默认密码算法和SQLCipher v2.1.1使用的默认密码算法。

使用

GIT 存储库上可用的源文件,我检查了与 SQLCipher v2.1.1 一起使用的默认密码算法,即使用 64(字节/位(密钥的 AES-256-CBC。SQLCipher v3.2.0 似乎使用相同的默认算法。

SQLCipher v2.1.1是两年前在 zetetic.net 上购买的静态版本。

有没有办法检查数据库被加密的算法?我想没有。

你们认为这是一个密码算法选择问题吗? 还是别的什么?

谢谢。

3.x 版本的 SQLCipher 可以在 2.x 数据库上运行,但是密钥派生长度从 4,000 增加到 64,000,这可能是您看到问题的原因。 在对数据库进行键控后,可以通过发出以下命令来执行 2.x 数据库文件的一次性升级:

PRAGMA cipher_migrate;

另一种方法是将kdf_iter值向下调整为 4000。 有关这些选项的详细信息,请参阅涵盖 3.0.0 版本的博客文章。

最新更新