Skip to main content

密码复杂性校验

密码是图数据库安全的关键防线。为了提高密码的安全性,通常会要求用户设置复杂度较高的密码。密码复杂度校验是一种安全机制,能够确保用户设置的密码达到一定的复杂性和安全性要求。这种校验机制的目的是防止恶意用户轻易破解或攻击密码,从而提高图数据库的整体安全性。ArcGraph 图数据库密码复杂性校验主要是基于密码的组成、长度、字符类型等方面进行校验,用户根据实际情况自定义密码复杂度校验规则,通过合理设置密码复杂度校验规则,ArcGraph 可以有效地控制密码的复杂性,以提升用户账号的安全性。

前提条件

密码复杂性校验需在配置文件 server_config.toml 中进行配置,操作前请确认已获取 server_config.toml 配置文件并拥有修改权限。

配置规则

server_config.toml 配置文件中, [auth] 部分用于设置与身份验证相关的配置,具体内容示例如下,用户可以在此处开启密码复杂度校验功能并自定义密码复杂度校验规则。

[auth]
enable_login_check = true
enable_auth_check = true

enable_password_complexity_check = true
password_min_length = 10
password_min_number_count = 1
password_min_lower_alphabet_count = 1
password_min_upper_alphabet_count = 1
password_min_special_chars_count = 1

参数说明

参数说明默认值
enable_password_complexity_check全局配置项,用于开启或关闭密码复杂度校验功能。当 enable_password_complexity_check=true 时,开启密码复杂度校验功能,ArcGraph 将在用户创建或修改密码时进行密码复杂度校验。默认此配置项为 enable_password_complexity_check=false,即关闭密码复杂度校验功能。
password_min_length设置密码的最小长度。默认为 0,表示密码长度没有下限。
password_min_number_count设置密码中至少包含的数字(“0~9”)数量。默认为 0,表示密码中可以没有数字。
password_min_lower_alphabet_count设置密码中至少包含的小写字符(“a~z”)数量。默认值为 0,表示密码中可以没有小写字母。
password_min_upper_alphabet_count设置密码中至少包含的大写字符(“A~Z”)数量。默认值为 0,表示密码中可以没有大写字母。
password_min_special_chars_count设置密码中至少包含的特殊字符(例如:“@”、“~”、“!”、“#”、“$”、“%”、“^”、“&”、“*”等)数量。默认值为 0,表示密码中可以没有特殊字符。

应用示例

  1. 打开 server_config.toml 文件,并查看 [auth] 信息。 server_config.toml 默认存放路径为 config/server_config.toml

  2. 配置密码复杂度校验规则,示例如下。

    [auth]
    enable_login_check = true
    enable_auth_check = true

    enable_password_complexity_check = true
    password_min_length = 10
    password_min_number_count = 1
    password_min_lower_alphabet_count = 1
    password_min_upper_alphabet_count = 1
    password_min_special_chars_count = 1
  3. 保存配置文件,以生效密码复杂性校验功能。
    说明:

    • 不对已存在的密码进行密码复杂性校验。
    • 如需修改配置,请保存修改后重启服务器,以生效配置。
  4. 登录 ArcGraph 图数据库,并创建用户密码。示例如下。
    示例 1

    #符合要求的密码
    >> create user user1 set password "Abcdabcd@1";
    start executing statement: create user user1 set password "Abcdabcd@1";
    +--------------------------------+
    | Successfully create user USER1 |
    +================================+
    +--------------------------------+

    示例 2

    #密码长度不足
    >> create user user1 set password "123456";
    start executing statement: create user user1 set password "123456";
    +-------------------------------------------------------------------------+
    | error |
    +=========================================================================+
    | Code: 9007, Password is weak. Expected password contains min length 10. |
    +-------------------------------------------------------------------------+

    示例 3

    #密码包含的数字不足
    >> create user user1 set password "abcdefghijk";
    start executing statement: create user user1 set password "abcdefghijk";
    +-------------------------------------------------------------------------+
    | error |
    +=========================================================================+
    | Code: 9007, Password is weak. Expected password contains min numbers 1. |
    +-------------------------------------------------------------------------+

    示例 4

    #密码包含的小写字符数不足
    >> create user user1 set password "ABCDABCDA1";
    start executing statement: create user user1 set password "ABCDABCDA1";
    +------------------------------------------------------------------------------------+
    | error |
    +====================================================================================+
    | Code: 9007, Password is weak. Expected password contains lower alphabet numbers 1. |
    +------------------------------------------------------------------------------------+

    示例 5

    # 密码包含的大写字符数不足
    >> create user user1 set password "abcdabcda1";
    start executing statement: create user user1 set password "abcdabcda1";
    +------------------------------------------------------------------------------------+
    | error |
    +====================================================================================+
    | Code: 9007, Password is weak. Expected password contains upper alphabet numbers 1. |
    +------------------------------------------------------------------------------------+

    示例 6

    # 密码包含的特殊字符数不足
    >> create user user1 set password "Abcdabcda1";
    start executing statement: create user user1 set password "Abcdabcda1";
    +---------------------------------------------------------------------------------------+
    | error |
    +=======================================================================================+
    | Code: 9007, Password is weak. Expected password contains min special chars numbers 1. |
    +---------------------------------------------------------------------------------------+