首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在导入android应用之前验证sqlite数据库

问在导入android应用之前验证sqlite数据库
EN

Stack Overflow用户
提问于 2012-03-18 09:12:37
回答 3查看 676关注 0票数 2

我有一个应用程序,其中我添加了导出/导入数据库功能...我想做两件事:

1)导出时:将导出的数据库打乱,使普通人(我知道有些人可以破译最好的伪装技术)无法读取内容……

2)导入时:验证要导入的文件,以确保它适用于我的应用程序,而不是其他任何内容。

我在这里看到了一些关于加密的链接,可以在这里解决第一个问题。但我不想做加密。我想做一些简单的乱码。我还看到了一些关于通过检查应用程序查找的表来验证表内容的帖子。这是一个很好的解决方案,但我需要首先加载文件以进行验证,并在出现错误时回滚。

任何帮助都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-19 22:34:56

因此,我最终决定使用cipherinputstream进行DES加密,而不是添加标头来验证完整性,而是检查要导入的文件中是否存在所有的表名。我看到sqlite DB文件包含明文形式的ddl语句。这可能不是最优雅/完整的解决方案,但它是有效的。

票数 0
EN

Stack Overflow用户

发布于 2012-03-18 09:23:15

非常非常简单的方法:在文件中添加一些头文件,稍后您可以重新读入并检查:

代码语言:javascript
复制
// w/o exception handling finally etc
String secret = "zomg,secret";
byte[] header = secret.getBytes();
byte[] buffer = new byte[4096];
FileInputStream in = new FileInputStream("/your/sqlite.db");
FileOutputStream out = new FileOutputStream("/sdcard/the.secretfile");
out.write(header);
int read = 0;
while ((read = in.read(buffer)) != -1) {
    out.write(buffer, 0, read);
}
out.close();
in.close();
票数 1
EN

Stack Overflow用户

发布于 2012-03-18 09:32:31

处理此问题的最好且简单的方法是生成数据库文件的校验和(MD5),并与按计算得出的校验和进行比较。For more info

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9755213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档