我使用SQLCipher GIT存储库mingw32和这个如何.编译了mingw32 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一起使用的默认密码算法,该算法是AES-256-CBC,密钥为64 (字节/比特)。SQLCipher v3.2.0似乎使用了相同的默认算法。
SQLCipher v2.1.1是两年前在zetetic.net上购买的静态版本。
有没有办法检查数据库是加密的哪种算法?我想不会吧。
你们认为这是密码算法选择问题吗?还是别的什么?
谢谢。
发布于 2014-12-17 22:41:24
3.x版本的SQLCipher可以在2.x数据库上运行,但是密钥派生长度从4,000增加到64,000,这可能是您遇到问题的原因。您可以在输入数据库后发出以下命令,对2.x数据库文件执行一次升级:
PRAGMA cipher_migrate;
另一种选择是将kdf_iter值下调到4000。有关这些选项的更多信息可以在涵盖3.0.0发行版的博客帖子上获得。
https://stackoverflow.com/questions/27530310
复制相似问题