Language agnostic 找回丢失密码的最佳方法

Language agnostic 找回丢失密码的最佳方法,language-agnostic,Language Agnostic,对密码进行哈希运算时,重置用户密码的最佳方法是什么: 将密码重置为随机字符串并将该字符串发送到他们的注册邮件 创建一个唯一的哈希链接,用于重置一小时内有效的密码并将该链接发送到邮件 还有别的方法吗 2是最好的方法。永远不要以简单的形式发送密码。更好的是,不要这样把它保存在你的系统中。一定要把它腌熟 后续评论:通过电子邮件发送散列而不是普通密码也可能不安全,但通过这一点,你追求的是一个不同的目标。从Facebook到网上银行,许多人在所有网站上使用相同的密码。一个特定的散列可以被压缩,但密码本身却

对密码进行哈希运算时,重置用户密码的最佳方法是什么:

  • 将密码重置为随机字符串并将该字符串发送到他们的注册邮件
  • 创建一个唯一的哈希链接,用于重置一小时内有效的密码并将该链接发送到邮件
  • 还有别的方法吗

  • 2是最好的方法。永远不要以简单的形式发送密码。更好的是,不要这样把它保存在你的系统中。一定要把它腌熟

    后续评论:通过电子邮件发送散列而不是普通密码也可能不安全,但通过这一点,你追求的是一个不同的目标。从Facebook到网上银行,许多人在所有网站上使用相同的密码。一个特定的散列可以被压缩,但密码本身却不能,这才是关键

    创建一个唯一的哈希链接,用于重置一小时内有效的密码并将该链接发送到邮件

    这是我喜欢的方法。仅当且仅当用户访问链接时,才允许您重置密码。这样,如果有人恶意试图重置密码,用户只需删除电子邮件即可不受影响(无需输入新密码)

    另外,你应该给重置链接一个更长的失效日期(比如12到24小时)。

    如果只是因为通过电子邮件发送明文密码会不必要地暴露密码,那么2比1更可取

    其他选择包括:

    • 使用密码提示问题
    • 使用OpenID并将整个问题提交给用户的OpenID提供者

    这取决于您保护的信息的敏感性

    在安全性和可用性之间有一个很好的平衡,你需要决定它在哪里,以及你要保护什么资产


    我通常会做的(假设涉及财务数据)是选项2,减去1小时限制。

    我在一些网站上发现了一个非常有趣的方法:他们通过短信向你发送新密码。这是可怕的,因为电子邮件可以被黑客入侵,但电话。。。我认为黑客是不容易入侵的。

    不过一个小时有点短。我有一些seren邮件服务器需要几个小时来发送邮件(最明显的是我们大学的邮件:/),但以普通形式发送散列链接并不安全。在重置密码时,你无法避免一点不安全感,除非你想让用户感到尴尬。我不相信他是在暗示他将以明文形式存储生成的密码。存储密码哈希是一种非常常见的做法,因为它比存储明文或加密密码更安全。你如何存储密码?我不希望回答几个问题就可以访问我的密码。莎拉·佩林黑客证明了这是一个坏主意。第一个选择是一个可怕的选择。至少,我忘记问题/答案的频率比忘记密码的频率要高得多,这些问题会带来严重的安全风险。我只是将/dev/random粘贴到那些会迫使我输入问题/答案的网站上。@Nico Burns:你误解了密码提示问题的作用。他们不会透露散列密码。当然,这是不可能的。相反,它们帮助用户记忆他们选择的密码。话虽如此,密码提示问题显然不是一个很好的选择。我把它列在答案中,因为OP看起来要考虑不同的选择。OpenID的1!为什么要麻烦呢?比我聪明的人已经解决了这个问题。