android - 在导入到 Android 应用程序之前验证 sqlite 数据库

标签 android sqlite import export scramble

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

1)导出时:对导出的数据库进行打乱,让普通人(我知道有些人可以破译最好的伪装技术)看不到内容...

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

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

任何帮助将不胜感激......

最佳答案

非常非常简单的方法:向文件中添加一些 header ,稍后您可以读回并检查:

// 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();

关于android - 在导入到 Android 应用程序之前验证 sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9755213/

相关文章:

java - 在 Android 中访问自动代理 URL?

Sqlite,用斜杠替换反斜杠

java - 如何禁用自动 Java 静态导入?

java - 尝试执行 Jetty 服务器时出现处理程序错误

android - 如何在数据库机房中保存枚举字段?

android - 我正在获取 listView.getChildCount(),设置 arrayadapter 后是否为 0?

Android在手机上浏览SQLite数据库

node.js - 在 Node.js 中使用 ES6

android - 如何从 Android 应用程序正确地将统计信息添加到谷歌分析以查看正确的 session 持续时间

sql - 如何使用auto_increment主键列向表中插入多个数据?