可配置的密码校验库,支持自定义校验规则。
pip install passrulefrom passrule import PasswordValidator
# 使用默认规则
validator = PasswordValidator()
is_valid, errors = validator.validate("MyPassword123!")
print(is_valid) # True
print(errors) # []from passrule import PasswordValidator, ValidationRule
# 自定义规则
rule = ValidationRule(
min_length=6,
max_length=20,
require_digits=True,
require_uppercase=False,
require_lowercase=True,
require_special_chars=True,
special_chars="!@#$%"
)
validator = PasswordValidator(rule)
is_valid, errors = validator.validate("password123!")from passrule import PasswordGenerator, ValidationRule
# 使用默认规则生成密码
generator = PasswordGenerator()
password = generator.generate() # 生成8位密码
password = generator.generate(12) # 生成12位密码
# 使用自定义规则生成密码
rule = ValidationRule(
min_length=10,
require_uppercase=True,
require_digits=True,
require_special_chars=False
)
generator = PasswordGenerator(rule)
password = generator.generate()
# 排除容易混淆的字符
rule = ValidationRule(
min_length=12,
exclude_chars="0Oo1Il" # 排除0, O, o, 1, I, l
)
generator = PasswordGenerator(rule)
password = generator.generate()min_length: 最小长度(默认8)max_length: 最大长度(默认无限制)require_digits: 是否需要数字(默认True)require_uppercase: 是否需要大写字母(默认True)require_lowercase: 是否需要小写字母(默认True)require_special_chars: 是否需要特殊字符(默认True)special_chars: 允许的特殊字符(默认"!@#$%^&*()_+-=[]{}|;:,.<>?")exclude_chars: 排除的字符(默认为空)
MIT