gpt4 book ai didi

android - 在安卓应用中存储用户名和密码的最佳选择

转载 作者:IT老高 更新时间:2023-10-28 21:40:27 28 4
gpt4 key购买 nike

我正在开发一个 Android 应用,用户需要在其中登录才能执行操作。但大多数在安卓手机上,人们使用“让我登录”,在这种情况下,我必须保持 UsernamePassword 在我的应用程序中。我应该使用 SharedPreferences 还是 SQLite 数据库,或者还有其他我可以使用的东西。
我怎样才能使它安全?

最佳答案

是的,这在 Android 上很棘手。您不想将明文密码存储在首选项中,因为任何拥 Root设备的人基本上都会向全世界显示他们的密码。另一方面,您不能使用加密密码,因为您必须将加密/解密 key 存储在设备上的某个位置,同样容易受到根攻击。

我不久前使用的一个解决方案是让服务器生成一个“票证”,然后将其传回设备,这在一段时间内是有效的。设备使用此票证进行所有通信,当然使用 SSL,因此人们无法窃取您的票证。这样,用户在服务器上验证他们的密码一次,服务器发回一个过期的票,密码永远不会存储在设备上的任何地方。

一些三足身份验证机制,如 OpenID、Facebook,甚至 Google API,都使用这种机制。缺点是每隔一段时间,当票过期时,用户需要重新登录。

最终,这取决于您希望您的应用程序有多安全。如果这只是为了区分用户,并且没有像银行账户或血型那样存储 super secret 信息,那么将 PWD 以明文形式保存在设备上就可以了 :)

祝你好运,无论您决定哪种方法最适合您的特定情况!

编辑:我应该注意,这种技术将安全责任转移到服务器 - 您将希望在服务器上使用加盐哈希进行密码比较,您将在此问题的其他一些评论中看到这个想法.这可以防止明文密码出现在除设备上的 EditText View 、与服务器的 SSL 通信以及服务器的 RAM 之外的任何地方,同时对密码进行加盐和哈希处理。它永远不会存储在磁盘上,这是一件好事™。

关于android - 在安卓应用中存储用户名和密码的最佳选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9233035/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com