Şifreleme nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Şifreleme, okunabilir bilgilerin (açık metin) kriptografik algoritma ve anahtar kullanılarak okunamaz hale getirildiği (şifreli metin) bir süreçtir. Amaç, verilerin gizliliğini sağlamaktır; böylece yalnızca yetkili kişiler, uygun anahtarı kullanarak veriyi okuyabilir.
İki temel şifreleme türü vardır:
-
Simetrik şifreleme: Aynı anahtar hem şifreleme hem de şifre çözme için kullanılır. Hız yüksektir, ancak anahtarın güvenli iletimi sorun olabilir. Örnekler: AES, DES.
<?php // Basitleştirilmiş simetrik şifreleme örneği (sadece kavramı göstermek için) $key = 'anahtar123'; $plaintext = 'Gizli mesaj'; // Basit bir şifreleme fonksiyonu varsayalım (üretimde kullanılmamalı) function simple_encrypt($data, $key) { return base64_encode($data ^ $key); // XOR işlemi örneği } // Basit bir şifre çözme fonksiyonu varsayalım (üretimde kullanılmamalı) function simple_decrypt($data, $key) { return base64_decode($data) ^ $key; // XOR işlemi örneği } $ciphertext = simple_encrypt($plaintext, $key); echo "Şifreli: " . $ciphertext . "\n"; $decryptedtext = simple_decrypt($ciphertext, $key); echo "Çözülmüş: " . $decryptedtext . "\n"; ?> -
Asimetrik şifreleme (açık anahtar şifreleme): Bir anahtar çifti kullanılır: açık anahtar şifreleme için, özel anahtar ise şifre çözme içindir. Açık anahtar serbestçe dağıtılabilir, özel anahtar ise gizli tutulur. Hız, simetrik şifrelemeden daha düşüktür. Örnekler: RSA, ECC.
<?php // Asimetrik şifreleme örneği (basitleştirilmiş, RSA kavramını göstermek için) // Gerçek uygulamada PHP'nin OpenSSL fonksiyonları kullanılır (openssl_public_encrypt, openssl_private_decrypt vb.) // Anahtarlar oluşturma (karmaşık süreç) // $privateKey = ... // $publicKey = ... $plaintext = 'Başka bir gizli mesaj'; // Açık anahtar ile şifreleme // $encrypted = openssl_public_encrypt($plaintext, $ciphertext, $publicKey); // echo "Asimetrik şifreli: " . base64_encode($ciphertext) . "\n"; // Özel anahtar ile şifre çözme // $decrypted = openssl_private_decrypt($ciphertext, $decryptedtext, $privateKey); // echo "Şifre çözülmüş (asym): " . $decryptedtext . "\n"; // Gerçek kodda OpenSSL fonksiyonları kullanılır ?>
Şifreleme, verileri depolama sırasında (encryption at rest) ve iletim sırasında (encryption in transit), örneğin SSL/TLS protokollerinde web sitelerinde korumak için kullanılır.