"""密码哈希服务端口(领域层接口). 定义密码哈希与验证的抽象接口,具体实现由应用层或基础设施层提供。 遵循 DDD 依赖倒置原则:领域层定义端口,外层实现端口。 """ from __future__ import annotations from abc import ABC, abstractmethod from typing import Optional, Tuple class PasswordHasherPort(ABC): """密码哈希服务端口(抽象接口)""" @abstractmethod def hash_password(self, password: str) -> str: """哈希密码""" ... @abstractmethod def verify_password(self, password: str, hashed_password: str) -> bool: """验证密码""" ... @abstractmethod def needs_rehash(self, hashed_password: str) -> bool: """检查哈希是否需要重新计算""" ... class PasswordValidatorPort(ABC): """密码强度验证端口(抽象接口)""" @abstractmethod def validate(self, password: str) -> Tuple[bool, Optional[str]]: """验证密码强度""" ...