【问题标题】:Enforcing password rules with regex使用正则表达式强制执行密码规则
【发布时间】:2013-01-30 16:35:15
【问题描述】:

我发现了可以强制一个特殊符号和一个数字以及最少字符的正则表达式模式。

但是有没有人有一个更现实的例子来说明执行 f.ex 的正则表达式。

2 位或更多位 2个或更多字母 2个或更多非字母非数字

最小长度 8

【问题讨论】:

  • this page 链接的(德语)文章很好地解释了为什么使用任何正则表达式评估密码质量都非常不充分。不幸的是,这些文章是在付费墙后面...

标签: regex


【解决方案1】:

你可以这样使用:

  • 2 位或更多位:\d{2,}
  • 2 个或更多字母:[A-Za-z]{2,}
  • 2 个或更多非字母:[^A-Za-z0-9]{2,}

我建议您为不同的检查使用单独的正则表达式。这将有助于制定更可维护的解决方案。出于长度目的,我建议使用大多数语言提供的 length 属性。

【讨论】:

  • 这样一个简单解决方案的问题是它会接受诸如“asdf..11”之类的密码(前提是最小长度为8)。任何自尊的破解工具都会在几秒钟内把它吹走,因为它们包含尝试简单事情的规则集,例如附加“..11”。
  • @Michael:您可以对密码的前 8 个字符进行模式检查。
  • @MichaelWild:OP 只是要求使用正则表达式方法来解决特定类型的问题。至少在撰写本文时,我看不到任何关于破解工具的提及。
  • @npinti "强制执行密码规则" 说明了一切,不是吗?人们尝试破解这些密码。我只是想提醒 OP,这些规则不足以确保良好的密码质量。
猜你喜欢
  • 2011-03-28
  • 2012-05-30
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多