Sobes.tech
Intern

Ş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:

  1. 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";
    ?>
    
  2. 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.