更新/更改Realm加密密钥

Nik*_*iko 7 android realm

Realm在我的应用程序中加密了数据库.我想更改加密密钥.是否有正确的方法Realm使用新的加密密钥制作文件的副本,或者是否有其他选项可用?

谢谢.

Chr*_*ior 9

是的,您必须使用新的加密密钥复制Realm文件.该方法称为writeEncryptedCopyTo():https://realm.io/docs/java/latest/api/io/realm/Realm.html#writeEncryptedCopyTo-java.io.File-byte : A-

像下面这样的东西应该工作:

RealmConfiguration config1 = new RealmConfiguration.Builder(context)
  .name("old-name")
  .encryptionKey(getOldKey())
  .build()

Realm realm = Realm.getInstance(config1);
realm.writeEncryptedCopyTo(new File(context.getFilesDir(), "new-name"), getNewKey());
realm.close();

RealmConfiguration config2 = new RealmConfiguration.Builder(context)
  .name("new-name")
  .encryptionKey(getNewKey())
  .build()
Run Code Online (Sandbox Code Playgroud)