java Android API 16级如何安全地存储首选项?
目前,我正在我的开源应用程序中使用DefaultSharedPreferences
。现在我知道在DefaultSharedPreferences
中存储api密钥/密码是个坏主意,因为敏感数据以纯文本形式存储
我想使用许多安全解决方案中的一种,比如EncryptedSharedPreferences
,但所有这些解决方案的问题是它们不支持API级别16
有人知道如何在Android Api级别16及更高级别上以更安全的方式实现这一点的解决方案或教程吗
下面是我当前解决方案(不安全)的相关代码部分
// [...]
public class MainFragment { // [...]
// [...]
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// [...]
MainActivity.setApiKey(PreferenceManager.getDefaultSharedPreferences(requireActivity())
.getString("api_key_preference", ""));
// [...]
}
// [...]
}
// [...]
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.root_preferences, rootKey);
}
}
<PreferenceScreen>
<!-- [...] -->
<EditTextPreference
安卓:icon="@drawable/ic_baseline_vpn_key_24"
安卓:key="api_key_preference"
安卓:selectAllOnFocus="true"
安卓:singleLine="true"
安卓:title="API Key" />
<!-- [...] -->
共 (0) 个答案