Czym jest szyfrowanie?
sobes.tech AI
Odpowiedź od AI
Szyfrowanie to proces przekształcania czytelnych informacji (tekst jawny) w nieczytelny format (tekst zaszyfrowany) za pomocą algorytmu kryptograficznego i klucza. Celem jest zapewnienie poufności danych, tak aby tylko uprawnione osoby mogły je odczytać, używając odpowiedniego klucza do odszyfrowania.
Istnieją dwa główne typy szyfrowania:
-
Szyfrowanie symetryczne: Używa tego samego klucza zarówno do szyfrowania, jak i do odszyfrowania. Prędkość jest wysoka, ale problemem jest bezpieczna transmisja klucza. Przykłady: AES, DES.
<?php // Przykład symetrycznego szyfrowania (uproszczony, tylko do celów demonstracyjnych) $key = 'klucz123'; $plaintext = 'Sekretna wiadomość'; // Zakładamy prostą funkcję szyfrowania (nie do użycia w produkcji) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // Przykład operacji XOR } // Zakładamy prostą funkcję deszyfrowania (nie do użycia w produkcji) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // Przykład operacji XOR } $ciphertext = simple_encrypt($plaintext, $key); echo "Zaszyfrowane: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Odszyfrowane: " . $decryptedtext . "\n"; ?> -
Szyfrowanie asymetryczne (szyfrowanie kluczem publicznym): Używa pary kluczy: klucza publicznego do szyfrowania i klucza prywatnego do odszyfrowania. Klucz publiczny może być swobodnie rozpowszechniany, a klucz prywatny jest utrzymywany w tajemnicy. Prędkość jest niższa niż w przypadku szyfrowania symetrycznego. Przykłady: RSA, ECC.
<?php // Przykład szyfrowania asymetrycznego (uproszczony, do demonstracji RSA) // W praktyce używa się funkcji PHP dla OpenSSL (openssl_public_encrypt, openssl_private_decrypt itd.) // Generacja kluczy (złożony proces) // $privateKey = ... // $publicKey = ... $plaintext = 'Inna tajna wiadomość'; // Szyfrowanie kluczem publicznym // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Szyfrowanie asymetryczne: " . base64_encode($ciphertext) . "\n"; // Deszyfrowanie kluczem prywatnym // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Odszyfrowanie asymetryczne: " . $decryptedtext . "\n"; // W rzeczywistym kodzie używałoby się funkcji OpenSSL ?>
Szyfrowanie jest stosowane do ochrony danych podczas przechowywania (encryption at rest) i podczas przesyłania (encryption in transit), na przykład w protokołach SSL/TLS na stronach internetowych.