5
私のアプリケーションにはRealm
というデータベースが暗号化されています。私は暗号化キーを変更したいと思います。新しい暗号化キーを使用してRealm
ファイルのコピーを作成する適切な方法ですか、別のオプションがありますか?レルムの暗号化キーの更新/変更
ありがとうございました。
私のアプリケーションにはRealm
というデータベースが暗号化されています。私は暗号化キーを変更したいと思います。新しい暗号化キーを使用して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()
その後、私は同じ名前を付ける私のデータベースを維持したいと思いますので、私は一時ファイルにコピーを書き込み、その後、元のファイルを削除し、 tmpファイルの名前を変更します。ただし、Realmはパスに基づいた構成キャッシュを使用します。それをリセットする方法はありますか? – Niko
私の悪い、それを取り除くために十分早く領域のインスタンスを閉じていなかった:) – Niko