我是一名使用 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/