Mi az a titkosítás?
sobes.tech MI
Válasz az MI-től
A titkosítás az az eljárás, amikor olvasható információkat (nyílt szöveg) olvashatatlan formátummá (titkosított szöveg) alakítunk egy kriptográfiai algoritmus és egy kulcs segítségével. Célja az adatok bizalmasságának biztosítása, hogy csak jogosult személyek olvashassák azokat, a megfelelő kulcs használatával a dekódoláshoz.
Két fő típusú titkosítás létezik:
-
Szimmetrikus titkosítás: Ugyanazt a kulcsot használják a titkosításhoz és a dekódoláshoz. A sebesség magas, de a kulcs biztonságos átadása problémát jelenthet. Példák: AES, DES.
<?php // Egyszerű szimmetrikus titkosítási példa (csak a fogalom bemutatására) $key = 'kulcs123'; $plaintext = 'Titkos üzenet'; // Feltételezünk egy egyszerű titkosítási függvényt (ne használja éles környezetben) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // XOR művelet példaként } // Feltételezünk egy egyszerű dekódoló függvényt (ne használja éles környezetben) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // XOR művelet példaként } $ciphertext = simple_encrypt($plaintext, $key); echo "Titkosítva: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Dekódolva: " . $decryptedtext . "\n"; ?> -
Aszimmetrikus titkosítás (nyilvános kulccsal): Egy kulcspár használata: nyilvános kulcs a titkosításhoz, privát kulcs a dekódoláshoz. A nyilvános kulcs szabadon terjeszthető, a privát kulcs titokban marad. A sebesség alacsonyabb, mint a szimmetrikus titkosításnál. Példák: RSA, ECC.
<?php // Egyszerű aszimmetrikus titkosítási példa (RSA koncepció bemutatására) // Gyakran PHP OpenSSL funkciókat használnak (openssl_public_encrypt, openssl_private_decrypt stb.) // Kulcspár generálása (bonyolult folyamat) // $privateKey = ... // $publicKey = ... $plaintext = 'Egy másik titkos üzenet'; // Nyilvános kulccsal titkosítás // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Aszimmetrikus titkosítás: " . base64_encode($ciphertext) . "\n"; // Privát kulccsal dekódolás // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Dekódolt (asym): " . $decryptedtext . "\n"; // A valódi kódban OpenSSL funkciókat használnának ?>
A titkosítást alkalmazzák az adatok védelmére tároláskor (encryption at rest) és átvitelkor (encryption in transit), például SSL/TLS protokollokban weboldalakon.