我只是想问一下,在SharedPreferences中存储密码(加密)是否是个好主意。 在Android中,您可以删除应用程序的sharedPredPref,然后密码消失,因此最好将其存储在像sqlite这样的数据库中?在我的应用程序中,我将其保存在sharedPref中,因此当第一次启动活动时,他必须设置一个新密码。现在的问题是,其他人可以删除sharedPreferences,然后他会再次要求设置一个新密码。
答案 0 :(得分:1)
在Android SharedPreferences
以及SQLite
中,在应用程序界面中都会清除Clear data
按钮。所以没有区别!
在这种情况下,用户将在第一次启动应用程序时注销。最终身份验证应始终在服务器端进行,而不是在应用程序内部进行。
答案 1 :(得分:0)
如果您唯一担心的是有人可能会删除首选项xml文件,那么将它们存储在SQLite中将没有任何区别。因为清除应用程序的数据时会删除这两个。
答案 2 :(得分:0)
在共享偏好设置中使用MODE_PRIVATE,以便除了您的应用程序之外无人可以访问它
SharedPreferences prefs= getSharedPreferences("yourpasspreference", MODE_PRIVATE);
最好以加密形式保存密码类型。
要保护清除设置中的数据,您可以在清单中使用此功能
<application android:label="MyApp" android:icon="@drawable/icon"
android:manageSpaceActivity=".ActivityOfMyChoice">
它将禁用“设置”中的“清除数据”按钮,将显示“管理空间”按钮,该按钮将启动您定义的ActivityOfMyChoice
活动。