String 密码唯一字生成

String 密码唯一字生成,string,algorithm,random,passwords,String,Algorithm,Random,Passwords,我希望使用单个密码字符串,而不是大多数网站用来验证用户身份的email/pass组合。我知道如果他们丢失了密码(除非有忘记问题),帐户将变为非活动状态,但我希望该站点完全匿名,我不希望在数据库中存储任何可以链接回实际用户的数据 也就是说,您能否分享一些方法(或指向当前示例)来了解如何随机生成带有数字的英语单词以创建密码(类似于taco_eat3R、nacho_P0tatoes等) 储存一张英语单词表 随机组合两个单词(使用正则表达式添加数字) 与现有用户交叉引用(以避免重复) 如果你坚持使用字典

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

也就是说,您能否分享一些方法(或指向当前示例)来了解如何随机生成带有数字的英语单词以创建密码(类似于taco_eat3R、nacho_P0tatoes等)
  • 储存一张英语单词表
  • 随机组合两个单词(使用正则表达式添加数字)
  • 与现有用户交叉引用(以避免重复)

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

    ETA:更适合计算机生成的密码短语


    另外,一定要使用加密标准RNG从字典中挑选单词。

    这是个坏主意。如果没有帐户名,你可以用普通的单词强行输入密码,并登录到尽可能多的用户。这不是用户的错,而是你的错,因为他们的密码是由你分配给他们的。你最好坚持使用电子邮件/密码,在安全的单向散列函数(如bcrypt)中散列电子邮件地址,并将其与密码一起存储(也应该散列)。我可以随时添加代码以防止暴力攻击。电子邮件可以追溯到一个真实的人,所以这是不可能的。用户名/密码组合不可跟踪,但我需要一个输入,而不是两个输入。通过安全单向哈希函数(如bcrypt)散列的电子邮件地址无法反向工程回电子邮件地址。相关:。只需遵循(电子邮件、密码)对的相同建议。是的,即使我生成的密码也将由bcrypt存储。这只是为某人生成一个密码,以防他们不想自己创建一个。请重新阅读我的问题,我希望使用密码字符串而不是电子邮件/密码组合。是的,我知道目前的标准是什么!只要重新考虑一下,问问大家是否有什么建议可以让它发挥作用。这很容易被字典攻击所强迫。但是你可以限制基于ip的尝试次数。假设每个ip地址每分钟5次尝试。然后,如果某个ip持续尝试系统,它可能会被锁定更长的时间。不要因为不同意而尝试关闭线程?这就是你试图与人面对面交谈的方式,通过改变话题而不是进行理智的对话?如果你真的认为你的方式是唯一的方式,那么你应该把它打开,让其他人看到你的评论,也许可以从中学习。我很欣赏你的观点,这几乎是当前的标准(就像我在描述中所说的)。我想再问一次这个问题,它需要(每隔一段时间)去做。。。这就是新方法的产生。(我不敢相信我真的不得不这么说!)我很抱歉你亲自投了反对票,但这是一个坏主意的糟糕解决方案。我不希望未来的用户偶然发现这个问题,认为这是做任何事情的正确方式。如果你觉得我冤枉了你,你可以随时把这件事写在报纸上。别担心,我不是针对你的。我只是在寻找有创造力的思想家!