如何在我的应用程序中保护SharedPreferences
数据?
我使用了2步,但在安全审计中,黑客能够破解我的数据。
1步 -
SharedPreferences sharedPreferences = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("key", value);
editor.commit();
2步 - 使用SecureSharePreferences
SecurePreferences securePrefs = new SecurePreferences(context, "key", "my_user_prefs.xml");
SharedPreferences.Editor editor =securePrefs.edit();
editor.putString(key, value);
editor.commit();
处理此问题的任何其他方法。
阅读完一些答案后,我用加密数据更新我的代码,但问题仍然存在。安全审核员仍然从应用程序内存中获取应用程序sharedpreference.file。
SharedPreferences sharedPreferences = context.getSharedPreferences(context.getPackageName(), Context.MODE_PRIVATE);
String keyEncript = EncriptionDecriptionUtils.encriptionOfData(key).toString().trim().replaceAll("\r\n", "");
String value = sharedPreferences.getString(keyEncript, "").trim().replaceAll("\r\n", "");
String valuedecript = EncriptionDecriptionUtils.decriptionOfData(value).toString().trim().replaceAll("\r\n", "");
return valuedecript;
答案 0 :(得分:1)
你可以加密&使用AES算法解密共享首选项数据。如果您明确打开共享首选项,您将只获得加密信息。有关您的参考,请查看此Securing SharedPreferences Data using AES algorithm
答案 1 :(得分:0)
在有根电话的手机上,它可以访问您应用的共享偏好设置。此外,在任何电话上,用户都可以通过清除应用程序管理器中的缓存来删除它存储在共享首选项中的所有数据。存储数据的安全方法是使用 AES 对其进行加密,并将其保存在应用根文件夹中的文本文件中。