3 回答
TA贡献1866条经验 获得超5个赞
目前尚不等同于Android中iPhone的KeyChain。如果要保密,请勿将其存储在设备上。或至少不要将加密的密钥/密码存储在设备上。就那么简单。
另外:
1)即使在ICS上,也不能直接使用KeyChain来存储应用程序密钥(请参阅3中的博客文章))
2)这仅是针对植根电话或有人可以物理访问设备的问题。
3)与记住多个密码相比,记住一个密码来保护您的所有凭据要好得多。此外,在ICS上,没有单独的密码,凭据存储受设备解锁密码保护。
TA贡献1828条经验 获得超4个赞
散列是解决方案,不要在共享首选项或任何介质中将凭据存储为纯文本格式。
只需对密码进行加盐和哈希处理,然后就可以继续将其存储在sharedPreferences或某些嵌入式db中。
下面是它的工作原理:
线上
成功登录后,将普通密码(未加密)发送到服务器进行身份验证和授权。
盐可以生成并从服务器返回到客户端,也可以在客户端生成
然后将其存储为salt并哈希密码并存储。
离线
我们将使用存储的盐对用户输入的密码进行哈希处理
我们将与成功登录后存储的哈希值进行比较
如果两者相等,那么我们将允许用户进入,否则我们将不允许用户进入。
好处:
因此,现在您不必担心版本兼容性。
即使设备已扎根,也很难蛮力散列。
即使有人反编译/破解应用程序,也很难进行反向工程
TA贡献1783条经验 获得超4个赞
我不明白这样做的好处。如果服务器从期望的密码(然后哈希)更改为期望的预哈希密码,则如果散列密码受到破坏,则黑客可以使用该密码登录服务器。他们永远不必担心真正的密码是什么,而他们却拥有服务器认为“密码”是什么的信息
添加回答
举报