简单的问题。 Realm数据库安全吗?有没有办法在应用程序之外接收数据?如果不是:
我有非常敏感的数据,我必须记住 - 如何保证它们的安全?
答案 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