Android Realm数据库安全性

时间:2016-06-14 11:04:23

标签: java android database security realm

简单的问题。 Realm数据库安全吗?有没有办法在应用程序之外接收数据?如果不是:

我有非常敏感的数据,我必须记住 - 如何保证它们的安全?

1 个答案:

答案 0 :(得分:12)

Realm文件可以通过将512位加密密钥(64字节)传递给RealmConfiguration.Builder.encryptionKey()来加密存储在磁盘上:

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

Realm realm = Realm.getInstance(config);

这可确保持久保存到磁盘的所有数据都使用标准AES-256加密进行透明加密和解密。每次创建文件的Realm实例时,都必须提供相同的加密密钥。

有关如何在Android KeyStore中的运行之间安全存储密钥的完整示例,请参阅以下链接,以便其他应用程序无法读取它们:

https://github.com/realm/realm-java/tree/master/examples/encryptionExample