如何知道sqlite数据库是否加密

时间:2013-06-27 13:20:21

标签: android sqlite sqlcipher

众所周知,我们可以使用sqlcipher加密数据库,并在android项目中使用它。出于某种原因,我不想再使用它了。

使用sqlcipher_export转换数据库。

所以我的问题是

  1. 是否有一个好方法让我检查数据库是否加密,从而决定是否需要解密。
  2. 2,如果发生意外事件(迁移期间关机),我该怎么办?

2 个答案:

答案 0 :(得分:4)

直接检查数据库文件的前16个字节,如果它们等于字符串“SQLite format 3 \ 000”,则文件未加密,并且是标准的SQLite数据库。

如果在sqlcipher_export期间发生了某些事情并且发生了崩溃,原始数据库将保持不变。只需在后续发布时再次运行导出。

答案 1 :(得分:0)

将@StephenLombardos字符串" SQLite格式3 \ 000"进入UTF-8 byte counter的回复为19 bytes

因此,虽然他的答案是正确的,但需要稍作修改。

我会读取第一个 17个字节并检查它们是否等于" SQLite格式3 \ 0"

如果上述陈述为真,则您的db文件为未加密

如果声明为false,则您的db文件为加密