JetPack Securityについて調べる
参考ページ
https://android-developers.googleblog.com/2020/02/data-encryption-on-android-with-jetpack.html
https://qiita.com/MasayukiSuda/items/61b554d3cbe484f13706
https://www.bignerdranch.com/blog/encrypting-shared-preferences-with-the-androidx-security-library/
インストール
https://developer.android.com/jetpack/androidx/releases/security#declaring_dependencies
implementation "androidx.security:security-crypto:1.0.0-alpha02"
実装サンプル
jetpack securityはファイルを暗号化する機能とSharedPreferenceの値を暗号化する機能を提供している。 OAuthトークンやAPIキー等の秘密情報を保存することに使われ、それらのデータをローカルで保存することになる。
val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) val sharedPreferences = EncryptedSharedPreferences.create( "my_secret_prefs", masterKeyAlias, applicationContext, PrefKeyEncryptionScheme.AES256_SIV, PrefValueEncryptionScheme.AES256_GCM ) // storing a value sharedPreferences .edit() .putString("some_key", "some_data") .apply() // reading a value sharedPreferences.getString("some_key", "some_default_value") // -> "some_data"