feat: v1.7 overhaul - identity hash, triple wallet, financial ledger, and security audit system
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
import hashlib
|
||||
import unicodedata
|
||||
import re
|
||||
|
||||
class VINValidator:
|
||||
@@ -44,4 +46,31 @@ class VINValidator:
|
||||
"country": countries.get(vin[0], "Ismeretlen"),
|
||||
"year_code": vin[9], # Modellév kódja
|
||||
"wmi": vin[0:3] # World Manufacturer Identifier
|
||||
}
|
||||
}
|
||||
|
||||
class IdentityNormalizer:
|
||||
@staticmethod
|
||||
def normalize_text(text: str) -> str:
|
||||
"""Tisztítja a szöveget: kisbetű, ékezetmentesítés, szóközök és jelek törlése."""
|
||||
if not text:
|
||||
return ""
|
||||
# 1. Kisbetűre alakítás
|
||||
text = text.lower().strip()
|
||||
# 2. Ékezetek eltávolítása (Unicode normalizálás)
|
||||
text = "".join(
|
||||
c for c in unicodedata.normalize('NFD', text)
|
||||
if unicodedata.category(c) != 'Mn'
|
||||
)
|
||||
# 3. Csak az angol ABC betűi és számok maradjanak
|
||||
return re.sub(r'[^a-z0-9]', '', text)
|
||||
|
||||
@classmethod
|
||||
def generate_person_hash(cls, last_name: str, first_name: str, mothers_name: str, birth_date: str) -> str:
|
||||
"""Létrehozza az egyedi SHA256 ujjlenyomatot a személyhez."""
|
||||
raw_combined = (
|
||||
cls.normalize_text(last_name) +
|
||||
cls.normalize_text(first_name) +
|
||||
cls.normalize_text(mothers_name) +
|
||||
cls.normalize_text(birth_date)
|
||||
)
|
||||
return hashlib.sha256(raw_combined.encode()).hexdigest()
|
||||
Reference in New Issue
Block a user