【问题标题】:Does enforcing a password complexity requirement in randomly generated passwords make them more secure?在随机生成的密码中强制执行密码复杂性要求是否会使它们更安全?
【发布时间】:2017-06-05 02:04:15
【问题描述】:

我遇到了一些类似这样的代码:

function generatePassword() {
  let password;
  do {
    password = generateRandomString();
  } while (!checkPasswordComplexity(password));
  return password;
}

假设generateRandomString() 返回一个真正随机的所需字符集的字符串,checkPasswordComplexity() 检查密码是否包含一些预定义的最小数量的大写/小写/数字/特殊字符。

基本上它会尝试生成一个随机密码,检查某些复杂性要求,如果检查失败,它会再次尝试。

第一个问题:

这实际上比只从generateRandomString 返回第一个结果更安全吗?

第二个问题:

如果这确实是一种好的做法,是否有更有效(但仍然安全)的方式来直接生成满足复杂性要求的密码?

【问题讨论】:

    标签: security passwords


    【解决方案1】:

    开始回答我自己的问题:

    第一个问题:

    一方面,密码破解者可能从不太复杂的候选密码开始。另一方面,如果破解者知道您的复杂性要求,这实际上是在减少搜索空间。在实践中我不知道哪个更好。

    第二个问题:

    如果您需要在长度为 10 的密码中包含 2 个特殊字符,则从特殊字符集中随机选择 2 个字符,然后将它们放置在最终密码中的随机位置。然后用整个字符集中的随机字符填充剩余的 8 个位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-18
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多