Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
确定(名义上)SqlCipher 数据库是否实际加密(在 iOS 中)的最干净和最有效的方法是什么。请注意,此处的技术不适用于 SqlCipher ——“SQLite 格式 3”前缀无论是否加密都是有效的。
显而易见的方法是打开数据库,尝试对其进行操作,然后查看返回码是否为 SQLITE_NOTADB。但目前尚不清楚要尝试什么操作。
补充: 嗯...显然某些版本的 SqlCipher 不保留文件前缀。
SQLCipher 在文件的前 16 个字节中存储一个唯一的随机盐。如果您正在获取SQLite format 3\000并且内容仍处于加密状态,则它可能不是 SQLCipher 加密数据库。
SQLite format 3\000
最后,您还可以发出hexdump -C YourDatabase.db并检查输出,纯文本数据库将包含输出中的可见模式。
hexdump -C YourDatabase.db