diadia

興味があることをやってみる。自分のメモを残しておきます。

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"

リンク

SharedPreferencesの使い方