Čo je šifrovanie?
sobes.tech AI
Odpoveď od AI
Šifrovanie je proces prevodu čitljive informácie (otvoreného textu) na nečitateľný formát (šifrovaný text) pomocou kryptografického algoritmu a kľúča. Cieľom je zabezpečiť dôvernosť údajov, aby ich mohli čítať iba autorizované osoby s príslušným kľúčom na dešifrovanie.
Existujú dva hlavné typy šifrovania:
-
Symetrické šifrovanie: Používa sa rovnaký kľúč na šifrovanie aj dešifrovanie. Rýchlosť je vysoká, ale problémom je bezpečný prenos kľúča. Príklady: AES, DES.
<?php // Príklad symetrického šifrovania (zjednodušené, len na demonštračné účely) $key = 'kľúč123'; $plaintext = 'Tajná správa'; // Predpokladáme jednoduchú šifrovaciu funkciu (nepoužívajte v produkcii) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // Príklad XOR operácie } // Predpokladáme jednoduchú dešifrovaciu funkciu (nepoužívajte v produkcii) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // Príklad XOR operácie } $ciphertext = simple_encrypt($plaintext, $key); echo "Zašifrovaný text: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Dešifrovaný text: " . $decryptedtext . "\n"; ?> -
Asymetrické šifrovanie (šifrovanie s verejným kľúčom): Používa dvojicu kľúčov: verejný kľúč na šifrovanie a súkromný (privátny) kľúč na dešifrovanie. Verejný kľúč môže byť voľne distribuovaný, zatiaľ čo súkromný kľúč je uchovávaný v tajnosti. Rýchlosť je nižšia ako u symetrického. Príklady: RSA, ECC.
<?php // Príklad asymetrického šifrovania (zjednodušené, len na demonštračné účely RSA) // V praxi sa používajú PHP funkcie pre OpenSSL (openssl_public_encrypt, openssl_private_decrypt a pod.) // Generovanie kľúčov (zložitý proces) // $privateKey = ... // $publicKey = ... $plaintext = 'Iná tajná správa'; // Šifrovanie verejným kľúčom // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Zašifrovaný (asymetrický) text: " . base64_encode($ciphertext) . "\n"; // Dešifrovanie súkromným kľúčom // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Dešifrovaný (asymetrický) text: " . $decryptedtext . "\n"; // V skutočnom kóde by sa používali OpenSSL funkcie ?>
Šifrovanie sa používa na ochranu údajov pri ukladaní (encryption at rest) a pri prenose (encryption in transit), napríklad v SSL/TLS protokoloch webových stránok.