A legbiztonságosabb és legkorszerűbb eljárás szövegek bonyolult rejtjelezésére a Pythonban a Fernet modulja, amely az Advanced Encryption Standard (AES) algoritmust használja. Ez egy szimmetrikus kulcsú titkosítás, ami biztosítja a titkosságot és az adatintegritást is.
---------------------------
import os
import base64
import hashlib
def generalj_kulcsot_jelszoval(jelszo: str, so: bytes) -> bytes:
kulcs = hashlib.pbkdf2_hmac(
"sha256",
jelszo.encode("utf-8"),
so,
100_000,
dklen=32,
)
return base64.urlsafe_b64encode(kulcs)
def xor_transform(data: bytes, key: bytes) -> bytes:
return bytes(b ^ key[i % len(key)] for i, b in enumerate(data))
def szoveg_titkositas(szoveg: str, jelszo: str) -> tuple[bytes, bytes]:
so = os.urandom(16)
kulcs = generalj_kulcsot_jelszoval(jelszo, so)
titkos_adat = xor_transform(szoveg.encode("utf-8"), kulcs)
return base64.urlsafe_b64encode(titkos_adat), so
def szoveg_visszafejtes(titkos_token: bytes, jelszo: str, so: bytes) -> str:
kulcs = generalj_kulcsot_jelszoval(jelszo, so)
titkos_adat = base64.urlsafe_b64decode(titkos_token)
eredeti = xor_transform(titkos_adat, kulcs)
return eredeti.decode("utf-8")
if __name__ == "__main__":
eredeti_uzenet = "Ez egy nagyon titkos szöveg, amit el kell rejteni."
jelszo = "SzuperTitkosJelszó123"
print(f"Eredeti szöveg: {eredeti_uzenet}\n")
token, generalt_so = szoveg_titkositas(eredeti_uzenet, jelszo)
print(f"Titkosított rejtjel (token): {token.decode('utf-8')}\n")
visszafejtve = szoveg_visszafejtes(token, jelszo, generalt_so)
print(f"Visszafejtett szöveg: {visszafejtve}")
------------------------
Output:
Eredeti szöveg: Ez egy nagyon titkos szöveg, amit el kell rejteni.
Titkosított rejtjel (token): JiVIXAUSTx8VJj0hGkkRHjcmBTpWQRG3jhhdKUFvEA9ZIBRIKFccFQsCYU8GNRxcDAJB
Visszafejtett szöveg: Ez egy nagyon titkos szöveg, amit el kell rejteni.
--------------------
Futtatás; https://onecompiler.com/python#draft-zge8
Nincsenek megjegyzések:
Megjegyzés küldése