【问题标题】:Password(Including numerics,alphabets,8 words at least密码(包括数字、字母、至少8个字
【发布时间】:2021-11-28 02:26:11
【问题描述】:

希望你没事

我想要一个可以给我密码的正则表达式,包括这些规范:

  • 数字
  • 字母(大写和小写)
  • 至少 8 个字

提前谢谢你!

【问题讨论】:

  • 8 ?你是说字符吗?
  • Regex 不会给你一个随机字符串,它只是检查给定的字符串并返回匹配的结果。如果您想验证给定字符串是否包含您的要求,您可以使用@steve_pineapple 的答案。如果要生成密码,可以使用这个答案:stackoverflow.com/a/16548229/5793132

标签: react-native


【解决方案1】:

您可以使用正则表达式(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,}) 来验证是否...

  • 密码长度为 8 个或更多字符 ((?=.{8,})),
  • 如果密码至少包含一个大写字母 ((?=.*[A-Z])),
  • 如果密码至少包含一个小写字母 ((?=.*[a-z])) 并且
  • 至少包含一位数字 ((?=.*[0-9]))。

JavaScript 中的以下函数展示了如何使用正则表达式来检查密码是否符合要求。你没有提到你使用的是什么语言,但它应该可以在其他语言中使用(它在 Python 中工作, Ruby、PHP 和 Java)。

function validate_password(password) {
  let check = /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.{8,})/;
  if (password.match(check)) {
     console.log("Your password is strong.");
  } else {
    console.log("Meh, not so much.");
  }
}

validate_password("Password123"); // strong password
validate_password("OtherPassword"); // no numbers
validate_password("password123"); // no uppercase
validate_password("ToShort"); // to short

这个website 有更多关于密码强度检查的细节。

【讨论】:

  • 这种强制使用小写字母、大写字母、数字和符号(或它们的某种组合)的标准在几年前已经过时和弃用,有利于更长的密码,理想情况下随机生成。在您的示例中,您认为强密码实际上是一个 TERRIBLE 密码,很可能会在几秒钟内被破解。
猜你喜欢
  • 2012-05-30
  • 2015-01-18
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2010-12-28
  • 2011-12-12
相关资源
最近更新 更多