Токендерди кай сактайсыз?
sobes.tech AI
AIден жооп
Токендерди сактоо, айрыкча сырдуу (APIга кирүү, колдонуучу сессиялары), Android тиркемесинде төмөнкү жерлерди карап чыгам:
-
SharedPreferences (шифрленген же
EncryptedSharedPreferencesколдонуу менен): Кичинекей токендер үчүн ылайыктуу.EncryptedSharedPreferences(Security Library бөлүгү) колдоого алынган түзмөктөрдө аппараттык шифрлөөнү камсыз кылат, андан ары обычных SharedPreferences салыштырмалуу коопсуздугун жогорулатат.// EncryptedSharedPreferences түзүү val context: Context = applicationContext val masterKeyAlias = MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC) val sharedPreferences = EncryptedSharedPreferences.create( "secure_preferences", masterKeyAlias, context, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) // Токен сактоо with(sharedPreferences.edit()) { putString("auth_token", "your_sensitive_token") apply() } // Токенди окуу val authToken = sharedPreferences.getString("auth_token", null) -
Android Keystore системи: Криптографиялык ачкычтарды жана сезимтал маалыматтарды сактоонун эң коопсуз жолу. Ачкычтар түзмөктүн корголгон бөлүгүндө сакталат жана колдонмодон чыгарыла албайт. Keystore системин токендерди шифрлөө/дешифрлөө үчүн колдонсо болот, ал SharedPreferences же маалымат базасында сакталат.
// Keystore'дон ачкыч алуу мисалы (API деңгээли 23+) val keyStore = KeyStore.getInstance("AndroidKeyStore") keyStore.load(null) val secretKeyEntry = keyStore.getEntry("my_encryption_key_alias", null) as KeyStore.SecretKeyEntry val secretKey = secretKeyEntry.secretKey // secretKey колдонуу токенди шифрлөө/дешифрлөө үчүн -
SQLite маалымат базасы (шифрленген таблицалар же тилкелер): Эгер токендер көп болсо же башка маалыматтар менен байланыштуу болсо, жергиликтүү маалымат базасын колдонсо болот. Коопсуздукту жогорулатуу үчүн, токендердин маалыматтары шифрленген тилкелерде сакталат же бүт база шифрлөөчү китепкана колдонулат (мисалы, SQLCipher for Android).
-- Шифрленген тилкеси бар таблицаны түзүү мисалы (китепканадан көз каранды) CREATE TABLE users ( id INTEGER PRIMARY KEY, username TEXT, auth_token BLOB -- Шифрленген токен сактоо ); -
Колдонмо эсинде (RAM): Тек гана учурдагы сессияда токендин убактылуу сактоосу. Сессия аяктагандан кийин же колдонмону жабгандан кийин, токен алынып чыгып, көбүрөөк коопсуз сакталат. Туруктуу сактоо үчүн ылайыктуу эмес.
Тандоо төмөнкүлөргө көз каранды:
- Токендин сырдуу болушу: Токен канчалык сезимтал?
- Токендин көлөмү: Кичинекей токендер SharedPreferences же Keystoreда сактоого ыңгайлуу.
- Токендин жашоо мөөнөтү: Колдонмону жабгандан кийин токен керекпи?
- Android версиялары: Keystore жана
EncryptedSharedPreferencesколдоо айырмаланат.
Кеңеш: Keystore'ду шифрлоо ачкычын сактоо үчүн колдонуп, шифрленген SharedPreferences же шифрленген маалымат базасын колдонуп, өзү токенди сактаңыз. Бул жогорку деңгээлдеги коопсуздукту камсыз кылат жана колдонуу салыштырмалуу жөнөкөй.