[안드로이드] EncryptedSharedPreferences로 암호화 하기

littlecsh·2024년 3월 18일

앱개발

목록 보기
16/16
post-thumbnail

오늘은 SharedPreferences로 기기에 정보를 저장할때 암호화를 통해 저장하는 방법을 정리해보려고 한다.
SharedPreferences로 기기에 정보를 저장할때에는 보통 간단한 값을 저장하게 되는데 예로는 앱 설정의 상태를 저장하는 것이있다.
다르게 말하면 대량의 정보가 담긴 데이터를 SharedPreferences로 저장하는 것은 일반적인 방법이 아니라는 뜻이기도 하다.
이런 경우라면 DB같은 다른 방법을 활용하는 것이 맞을것 같다.

SharedPreferences로 기기에 정보를 저장할때 개인정보가 담겨 있다면 암호화를 통해 외부유출을 막는것이 좋다.
그러기 위해 사용하는 것이 EncryptedSharedPreferences이다.

SharedPreferences와 사용하는 방법은 다르지 않다.
설정한 이름의 파일으로 키와 값의 형태로 저장이 된다.
다만 그 과정에서 키와 값을 암호화하는 것이다.

val masterKeyAlias = MasterKey
    .Builder(applicationContext, MasterKey.DEFAULT_MASTER_KEY_ALIAS)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()
val pref = EncryptedSharedPreferences.create(
    this, //Context
    "userID",   //파일 이름
    masterKeyAlias,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,  //key 암호화
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM     //value 암호화
)
pref.edit().putString("myID","Kakao${user?.id}").apply()
profile
앱개발 튜토리얼

0개의 댓글