Metadata-Version: 2.4
Name: passrule
Version: 0.1.2
Summary: 可配置的密码校验库
Project-URL: Homepage, https://github.com/hongchou/passrule
Project-URL: Repository, https://github.com/hongchou/passrule
Author-email: "chouhong2021@163.com" <chouhong2021@163.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/markdown

# PassRule

可配置的密码校验库，支持自定义校验规则。

## 安装

```bash
pip install passrule
```

## 使用方法

### 基本使用

```python
from passrule import PasswordValidator

# 使用默认规则
validator = PasswordValidator()
is_valid, errors = validator.validate("MyPassword123!")
print(is_valid)  # True
print(errors)    # []
```

### 自定义规则

```python
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!")
```

### 密码生成

```python
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