【问题标题】:passcode unique word generation密码唯一词生成
【发布时间】:2014-12-21 14:05:45
【问题描述】:

我希望使用单个密码字符串,而不是大多数网站用来验证用户身份的电子邮件/密码组合。我知道如果他们丢失了他们的密码(除非有忘记问题)该帐户将变为非活动状态,但我希望该站点完全匿名,并且我不想在数据库中存储任何可以链接回实际的数据人。

也就是说,您能否分享任何有关如何随机生成带数字的英文单词以创建密码的方法(或指向当前示例)?

【问题讨论】:

  • 这是个坏主意。 如果没有帐户名,可以想象用常用字词暴力破解密码并以 许多用户 身份登录。这不是用户的错,而是你的错,因为他们的密码是你分配给他们的。您最好坚持使用电子邮件/密码并以安全的单向哈希函数(如 bcrypt)对电子邮件地址进行哈希处理,并将其与密码一起存储(也应进行哈希处理)。
  • 我总是可以添加代码来防止暴力攻击。电子邮件可以追溯到一个真实的人,所以这是不可能的。用户名/密码组合不可跟踪,但我想要一个输入而不是两个。
  • 通过 bcrypt 等安全单向散列函数散列的电子邮件地址无法反向工程回电子邮件地址。
  • 相关:Best way to store password in database。只需对(电子邮件、密码)对遵循相同的建议即可。
  • 是的,即使我生成的密码也会被 bcrypt 存储。这只是为某人生成密码,以防他们不想自己创建密码。请重新阅读我的问题,我希望使用密码字符串而不是电子邮件/密码组合。是的,我知道当前的标准是什么!只是重新考虑它,并询问大家是否有任何可以使其发挥作用的建议。

标签: string algorithm random passwords


【解决方案1】:

如果您坚持使用字典,那么您将需要长通短语(而不是通单词)来击败蛮力。 Diceware 使用了 7776 词词典中的六个或更多单词,并非所有单词都是英文单词。

ETA:Diceware 8k wordlist 更适合计算机生成的密码。

还要确保使用加密标准 RNG 从字典中挑选单词。

【讨论】:

    【解决方案2】:

    世代:

    1. 存储英文单词表
    2. 将两个单词随机组合在一起(使用正则表达式添加数字)
    3. 与现有用户交叉引用(以避免重复)

    【讨论】:

    • 这很容易通过字典攻击进行暴力破解。
    • 但是可以根据ip限制尝试次数。假设每个 IP 地址每分钟尝试 5 次。然后,如果某个 ip 不断尝试系统,它可能会被锁定更长的时间。
    • 不要因为不同意就关闭线程?这就是你尝试与人交谈的方式,通过改变主题而不是进行智力对话?如果您真的认为自己的方式是唯一的方式,那么您应该将其保持打开状态,以便其他人看到您的 cmets 并可能向他们学习。我很欣赏你的观点,这几乎是当前的标准(就像我在描述中所说的那样)。我希望重新提出这个问题,它需要(每隔一段时间)完成......这就是新方法的产生方式。 (我不敢相信我真的要说出来!)
    • 很抱歉您亲自投下反对票,但这是解决坏主意的坏方法。我不希望未来的用户偶然发现这个问题并认为这是做任何事情的正确方法。如果你觉得我冤枉了你,你可以随时在meta stack exchange 上解决这个问题。
    • 别担心,我没有把它当作私人的。我只是在寻找有创造力的思想家!
    猜你喜欢
    • 2010-09-08
    • 2023-04-04
    • 2011-10-06
    • 2013-07-18
    • 2012-04-09
    • 2014-09-13
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    相关资源
    最近更新 更多