我有一个正在开发的应用程序,要求用户能够在离线(远程位置)时使用它 . 目标是拥有一个需要用户进行身份验证的登录 . 如果在线,身份验证将使用oauth令牌 . 但是,如果脱机,则不会发生令牌验证 . 所以,我想允许用户使用本地存储的信息进行身份验证 .
提案:
-
请求正确的凭据 - >用户输入用户名和密码
-
如果在线,继续使用oauth令牌,
一个 . 如果成功,则存储AES加密的用户名/密码盐
湾如果不成功,请重新申请正确的凭据
-
如果离线,使用与上述相同的加密,加密用户名/密码组合
-
根据步骤2a中保存的最近成功在线登录列表测试脱机加密凭证 .
一个 . 如果信用卡与其中一个已保存的版本匹配,则可以在离线模式下访问应用和本地数据
湾如果信用证不匹配,则重新申请正确的信用证
Question :存储本地加密的combo un pw salt是否会影响在线登录过程的安全性?进一步的想法/建议?
感谢您的参与 .
2 回答
您的要求仅适用于共享首选项
首次询问用户登录详细信息 . 验证后连接用户名和密码,并使其md5 / sha1 . 将其存储在共享首选项或本地sqlite db中 .
下次用户离线时请求登录详细信息,连接并从同一保存的位置进行验证 .
sha1 / md5是单向加密,无法解密 . 因此登录详细信息在设备中始终是安全的 .