android - SQLite 与 Realm 在黑客数据安全方面的比较

标签 android sqlite mobile xamarin.android realm

我是一名使用 xamarin.android 的移动开发人员,我的任务迟早是为通常来自银行的客户制作应用程序。 我目前正在使用 Realm (初学者)开发不需要安全问题的应用程序。

我想知道的是,如果我要制作一个应用程序,并且比方说......它是用于银行移动系统的,哪一个确实可以提供更安全的本地数据库以防止各种类型的黑客。

最佳答案

Realm 和 SQLite 都使用存储在应用程序内部存储中的私有(private)目录中的文件。对于大多数情况来说,这足够安全,因为除了您的应用程序之外,任何应用程序都不允许访问它。

但是,您必须考虑已取得 root 权限的设备。有了这些,用户可以轻松浏览整个文件系统,包括应用程序的私有(private)目录。

鉴于此,我们最好的选择是数据加密。

Realm supports AES-256 encryption如果您要求的话:

byte[] key = new byte[64];
new SecureRandom().nextBytes(key);
RealmConfiguration config = new RealmConfiguration.Builder(context)
  .encryptionKey(key)
  .build();

Realm realm = Realm.getInstance(config);

使用这些访问 Realm 将透明地加密/解密保存在磁盘上的任何数据。这可以提高安全性,而无需开发人员付出额外的努力。

This project演示如何使用 Realm 的加密功能。

至于 SQLite...我还没有找到任何东西。也许您最好的选择是自己手动进行加密/解密。

关于android - SQLite 与 Realm 在黑客数据安全方面的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39953892/

相关文章:

css3 - 仅处理智能手机横向方向的媒体查询

windows - Cordova Windows Universal App websockets 不工作

android - 在抽屉导航中打开另一个 Activity 时应用程序崩溃

Android SDK Manager 未安装组件

sqlite - sqlite触发器中的条件插入语句

c# - SQLite 1.0.65 程序集绑定(bind)错误

java - Android 中频繁更改 View 的最佳方法?

java - android.view.InflateException 膨胀类 android.webkit.WebView 时出错

iphone - SQLite 数据库复制

jquery - 移动切换菜单 - 如何将内容推送到视口(viewport) View 之外?