Regular `SharedPreferences` is not appropriate for an auth token. It is app-private in normal operation, but it is not encrypted at rest; a compromised, rooted, debug, or backup-related environment may expose its contents. Do not put the token in source code or log it. Store the token with `EncryptedSharedPreferences`, backed by an Android Keystore-protected `MasterKey`: ```kotlin val masterKey = MasterKey.Builder(context) .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) .build() val securePrefs...
Scanned 9/5/2026
Install to Claude Code
npx -y skills add HoangNguyen0403/agent-skills-standard --skill android-security --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Android Security?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/hoangnguyen0403-android-security-agent-skills-standard)More formats (shields.io, HTML) on the badges page.
# Auth tokens in `SharedPreferences`
Regular `SharedPreferences` is not appropriate for an auth token. It is app-private in normal operation, but it is not encrypted at rest; a compromised, rooted, debug, or backup-related environment may expose its contents. Do not put the token in source code or log it.
Store the token with `EncryptedSharedPreferences`, backed by an Android Keystore-protected `MasterKey`:
```kotlin
val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
val securePrefs = EncryptedSharedPreferences.create(
context,
"secret_shared_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
securePrefs.edit()
.putString("auth_token", token)
.apply()
```
Read and remove the token through that same encrypted store, clear it on logout or revocation, and transmit it only over HTTPS. This protects local storage; it does not replace secure session expiry, revocation, or TLS.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!