password_strength_schema.py 801 B

12345678910111213141516171819202122232425
  1. """
  2. 密码强度检测数据传输对象定义
  3. """
  4. from pydantic import BaseModel, Field
  5. from enum import Enum
  6. class PasswordStrengthLevel(str, Enum):
  7. """密码强度等级"""
  8. WEAK = "weak"
  9. MEDIUM = "medium"
  10. STRONG = "strong"
  11. class PasswordStrengthRequest(BaseModel):
  12. """密码强度检测请求"""
  13. password: str = Field(..., description="待检测的密码")
  14. class PasswordStrengthResponse(BaseModel):
  15. """密码强度检测响应"""
  16. strength: PasswordStrengthLevel = Field(..., description="密码强度等级")
  17. score: int = Field(..., ge=0, le=100, description="密码强度分数(0-100)")
  18. suggestions: list[str] = Field(default_factory=list, description="改进建议")
  19. meets_requirements: bool = Field(..., description="是否满足最低要求")