import hashlib import re # 마스킹 패턴 정의 _PATTERNS = [ # 주민등록번호: 6자리-1~4자리+6자리 (숫자 금액과 구분: 앞에 비숫자 또는 시작, 뒤에 비숫자 또는 끝) (re.compile(r"(? str: """텍스트에서 개인정보 패턴을 마스킹하여 반환.""" for pattern, replacement in _PATTERNS: text = pattern.sub(replacement, text) return text def hash_user_key(kakao_id: str) -> str: """SHA-256 해시 앞 16자리 반환.""" return hashlib.sha256(kakao_id.encode()).hexdigest()[:16] def has_sensitive_data(text: str) -> bool: """텍스트에 개인정보 패턴이 포함되어 있으면 True.""" for pattern, _ in _PATTERNS: if pattern.search(text): return True return False