Passwords 如何创建和使用伪随机密码?

Passwords 如何创建和使用伪随机密码?,passwords,forgot-password,password-recovery,Passwords,Forgot Password,Password Recovery,我有一个Android应用程序,我允许用户输入密码并“锁定”应用程序,这样他们的朋友就不能在没有密码的情况下查看内部。它不使用web服务或任何东西,密码存储在应用程序中的一个私有文件中。问题是,用户喜欢忘记他们的密码,然后给我发电子邮件要求我做些什么。现在我不能。所以我想做的是创建并使用一个随机密码。用户可以给我发电子邮件,我可以给他们一些应用程序可以识别的随机密钥,让他们进来,这样他们就可以更改密码 它不需要任何超级安全的东西。非常感谢您的帮助。为什么不在应用程序本身中构建密码重置功能呢?如果

我有一个Android应用程序,我允许用户输入密码并“锁定”应用程序,这样他们的朋友就不能在没有密码的情况下查看内部。它不使用web服务或任何东西,密码存储在应用程序中的一个私有文件中。问题是,用户喜欢忘记他们的密码,然后给我发电子邮件要求我做些什么。现在我不能。所以我想做的是创建并使用一个随机密码。用户可以给我发电子邮件,我可以给他们一些应用程序可以识别的随机密钥,让他们进来,这样他们就可以更改密码


它不需要任何超级安全的东西。非常感谢您的帮助。

为什么不在应用程序本身中构建密码重置功能呢?如果它不使用web服务,为什么您或您的服务器需要参与其中


例如,如果他们不记得他们的安全密码,您的服务器可以存储他们的密码的md5散列,以便将他们的移动设备与服务器上的记录相匹配,这样您就可以向他们发送密钥来重置应用程序。

我认为在应用程序中实现“后门”不是一个好主意。这会造成一种非常糟糕的味道

如果我理解正确,您希望“解锁”应用程序,而不知道用户这样做是否以某种方式获得授权。我偷了一个设备,给你发了一封电子邮件,你注意我能看到数据。听起来很糟糕

我所知道的所有(好的)保险箱都依靠用户保管钥匙。他们需要安全,他们有责任

编辑

您可以提供一个“安全问题”

我试图为“自主”密码重置构建的任何其他内容都会引发严重的安全问题(身份验证/授权机制是什么)

编辑

你愿意走多远?确保拥有某些东西(如短信或邮件帐户)可能会减少问题,并给人一种安全的印象。因此,您可以截获来自预定义(应用程序设置)帐户的短信或邮件,比如说关键字“解锁”。如果未设置,则禁用此功能。短信拦截应该没那么难。

几点想法:

有什么登记程序吗?如果是这样的话,在注册时你可以随机生成第二个密码,你不告诉用户,但只是保留在文件中以备不时之需。或者类似地,您可以为用户提供“密码恢复”选项——单击此按钮生成后门密码

您可以使用某种算法从设备的机器id生成密码,并作为备用密码使用。如果你是一个拥有数百万份应用程序副本的大型组织,或者如果你的应用程序中的信息是超级机密的,那么这将是一个非常糟糕的主意,因为黑客迟早会想出算法,然后他们可以侵入任何他们想要的机器。但如果你是一个小目标,很可能没有人会努力去破解它

你一定了解你的用户吗?比如,你能从他们的信用卡号、地址或类似的信息中生成密码吗?当然,这会使你容易受到任何黑客的攻击,他们可能会发现关于潜在目标的任何信息


你这样做会造成一个巨大的潜在安全漏洞:如果有人偷了别人的设备,然后给你发电子邮件说他们丢失了密码怎么办?你怎么知道它是数据的合法所有者?如果有人可以打电话或发电子邮件说,嘿,我的密码丢了,请让我从后门进来,那么你就没有安全了。

在应用程序中加入安全问题概念怎么样?是的,我知道,我知道。。。但他们在应用程序中拥有的数据真的没有那么敏感。这并不是什么可以让他们的身份被盗或什么的,当他们把自己锁在门外时,我不得不告诉他们需要重新安装应用程序时,他们往往会非常生气。@Scienceprodigy如果没有足够的价值需要一个安全的密码,为什么要有密码呢?我认为,如果有人看到他们的数据,这对他们来说更麻烦,而不是安全问题。@PeteKirkham有些东西可能值得锁上门,但不值得有一个报警系统。有些东西可能值得配备警报系统,但不值得配备武装警卫。杰伊:问题不在于是否锁门,而在于是否锁门,然后提供一个男人大小的猫襟,让任何人都能穿过。如果值得锁门,那就锁门。如果决定允许任何人访问,那么要求用户记住密码会使他们更难使用系统,并产生错误的安全感。