简单的问题。Realm数据库安全吗?有没有办法在应用程序之外接收数据?如果没有:
我有非常敏感的数据,必须记住-如何保持它们的安全?
答:Realm数据库是安全的,因为它提供了加密和身份验证功能。但是,如果您需要在应用程序之外接收数据,建议使用其他安全通信协议,例如SSL或TLS。对于敏感数据,请考虑使用加密算法和密码学技术来保护数据。通过将512位(64字节)加密密钥传递给RealmConfiguration.Builder.encryptionKey(),可以在磁盘上以加密形式存储Realm文件:
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
new SecureRandom().nextBytes(key);
将会每次生成一个随机密钥,而你需要每次使用相同的密钥来加密和解密 Realm 数据库,否则它将抛出 RealmFileException 异常。 - Deep Lathia