1

确定(名义上)SqlCipher 数据库是否实际加密(在 iOS 中)的最干净和最有效的方法是什么。请注意,此处的技术不适用于 SqlCipher ——“SQLite 格式 3”前缀无论是否加密都是有效的。

显而易见的方法是打开数据库,尝试对其进行操作,然后查看返回码是否为 SQLITE_NOTADB。但目前尚不清楚要尝试什么操作。

补充: 嗯...显然某些版本的 SqlCipher 不保留文件前缀。

4

1 回答 1

0

SQLCipher 在文件的前 16 个字节中存储一个唯一的随机盐。如果您正在获取SQLite format 3\000并且内容仍处于加密状态,则它可能不是 SQLCipher 加密数据库。

最后,您还可以发出hexdump -C YourDatabase.db并检查输出,纯文本数据库将包含输出中的可见模式。

于 2013-08-26T12:54:23.897 回答