我有一个 Android 应用程序,我允许用户输入密码并“锁定”应用程序,这样他们的朋友就无法在没有密码的情况下查看内部。它不使用网络服务或任何东西,密码存储在应用程序内的私人文件中。问题是,用户喜欢忘记他们的密码,然后给我发邮件让我做点什么。现在我不能。所以我想要做的是创建并使用随机密码的东西。用户可以给我发电子邮件,我可以给他们一些应用程序可以识别的随机密钥,让他们进入,这样他们就可以更改密码。
它不必是任何超级安全的东西。任何帮助表示赞赏。
我有一个 Android 应用程序,我允许用户输入密码并“锁定”应用程序,这样他们的朋友就无法在没有密码的情况下查看内部。它不使用网络服务或任何东西,密码存储在应用程序内的私人文件中。问题是,用户喜欢忘记他们的密码,然后给我发邮件让我做点什么。现在我不能。所以我想要做的是创建并使用随机密码的东西。用户可以给我发电子邮件,我可以给他们一些应用程序可以识别的随机密钥,让他们进入,这样他们就可以更改密码。
它不必是任何超级安全的东西。任何帮助表示赞赏。
为什么不在应用程序本身中构建密码重置功能?如果它不使用 Web 服务,为什么您或您的服务器需要参与其中?
例如,如果他们不记得他们的安全密码,您的服务器可以存储他们密码的 md5 哈希,以将他们的移动设备与他们在您的服务器上的记录相匹配,这样您就可以向他们发送一个密钥来重置应用程序。
我认为在您的应用程序中实现“后门”不是一个好主意。这会产生非常糟糕的味道。
如果我理解正确,您想“解锁”应用程序,不知道这样做的用户是否以某种方式获得授权。我偷了一个设备,给你发了一封电子邮件,你小心我可以看到数据。不好听...
我所知道的所有(好的)保险箱都依赖于用户来保管他们的钥匙。他们想要安全,他们有责任。
编辑
您可以提供“安全问题”。
我尝试为“自主”密码重置构建的任何其他内容都会引发严重的安全问题(什么是身份验证/授权机制)
编辑
你愿意走多远?确保拥有某些东西(例如 SMS 或邮件帐户)可能会减少问题并给人以安全感。因此,您可以拦截来自预定义(应用程序设置)帐户的短信或邮件,让我们说出关键字“解锁”。如果未设置,则禁用此功能。短信拦截应该没有那么难。
几个想法:
有什么注册流程吗?如果是这样,在注册时您可以随机生成第二个密码,您不会告诉用户,而只是将其存档以备不时之需。或者类似地,您可以为用户提供“密码恢复”选项——单击此按钮以生成后门密码。
您可以使用某种算法从设备的机器 ID 生成密码并用作备用密码。如果您是一个拥有数百万个应用程序副本的大型组织,或者如果您的应用程序中的信息是超级机密的,那么这将是一个非常糟糕的主意,因为黑客迟早会找出算法然后他们可能会破解进入他们想要的任何机器。但如果你是一个小目标,很可能没有人会努力去破解它。
您一定对您的用户有所了解吗?就像你能从他们的信用卡号或他们的地址或类似的东西中生成密码吗?当然,这会使您容易受到任何可能发现有关潜在目标的任何信息的黑客的攻击。
你做这样的任何事情都会造成一个巨大的潜在安全漏洞:如果有人偷了别人的设备,然后给你发电子邮件说他们丢失了密码怎么办?你怎么知道它是数据的合法所有者?如果有人可以打电话或发邮件说,嘿,我丢失了密码,请让我进入后门,那么你就没有安全感了。