强密码强制和Passfilt.dll

可以使用系统管理工具启用强密码强制实施。 如果启用了系统管理策略,则创建或更改密码时必须满足以下最低要求:

  • 密码可能不包含用户的 samAccountName (帐户名称) 值或整个 displayName (全名值) 。 这两个检查都不区分大小写。
  • samAccountName 已全部签入,以确定是否是密码的一部分。 如果 samAccountName 长度小于 3 个字符,则会跳过此检查。
  • displayName 针对分隔符进行分析:逗号、句点、短划线或连字符、下划线、空格、磅号和制表符。 如果找到这些分隔符中的任何一个,则 displayName 会拆分,并且所有已分析的部分 (令牌) 确认未包含在密码中。 忽略小于三个字符的令牌,并且不会检查令牌的子字符串。 例如,名称“Erin M. Hagens”拆分为三个标记:“Erin”、“M”和“Hagens”。 由于第二个标记只有一个字符长,因此将被忽略。 因此,此用户不能有一个密码,其中包含“erin”或“hagens”作为密码中的任何位置的子字符串。
  • 密码必须包含以下五个类别中的三个字符。
字符类别 示例
欧洲语言的大写字母 (A 到 Z,带有音调标记、希腊文和西里尔文字符)
A、B、C、Z
欧洲语言的小写字母 (一个到 z,尖锐,带有音调标记、希腊文和西里尔文字符)
a、b、c、z
10 个基本数字 (0 - 9)
0, 1, 2, 9
非字母数字字符 (特殊字符)
$,!,%,^, () {}[];:<>?
任何分类为字母字符但不是大写或小写的 Unicode 字符。 这包括来自亚洲语言的 Unicode 字符。

启用强密码强制

  1. 在管理控制台中,找到 本地安全策略
  2. 选择 “帐户策略”,然后选择“ 密码策略”。
  3. 启用 密码必须满足复杂性要求 设置。

注意

给定字符只能满足一个类别。 GetStringTypeW 函数用于测试密码中的每个字符是大写、小写还是字母数字。